Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/09/2013, 18:05
LuisAngelGalindo
 
Fecha de Ingreso: septiembre-2013
Mensajes: 9
Antigüedad: 11 años, 1 mes
Puntos: 0
Exclamación No regresa datos

Holas, tengo problemas con una funcion que hice no me actualiza la tabla que eh creado con los datos respectivos, perdonen si tiene simples fallos es por que recien inicion en lo que es oracle y pl/sql
el codigo de mi tabla es

Código SQL:
Ver original
  1. CREATE TABLE TP_EMP_CONTRATO(
  2. COD_CONTRATO VARCHAR(10)NOT NULL PRIMARY KEY,
  3. AREA VARCHAR(45),
  4. DESEMPEÑO VARCHAR(45),
  5. T_CONTRATO VARCHAR(45),
  6. INI_CONTRADO DATE,
  7. SALARIO NUMERIC(8,2)
  8. );

Los datos insertados son

Código SQL:
Ver original
  1. --Insertando datos a la tabla tipo de contrato
  2. INSERT INTO TP_EMP_CONTRATO(COD_CONTRATO,AREA,DESEMPEÑO,T_CONTRATO,INI_CONTRADO,SALARIO)
  3. VALUES('COT001','ADMINISTRACION','ORGANIZADOR','TRABAJADOR DEPENDIEN-TE','15/9/1998','');
  4. INSERT INTO TP_EMP_CONTRATO(COD_CONTRATO,AREA,DESEMPEÑO,T_CONTRATO,INI_CONTRADO,SALARIO)
  5. VALUES('COT002','CONTABILIDAD','GERENTE','TRABAJADOR TIEMPO PAR-CIAL','10/12/1993','');
  6. INSERT INTO TP_EMP_CONTRATO(COD_CONTRATO,AREA,DESEMPEÑO,T_CONTRATO,INI_CONTRADO,SALARIO)
  7. VALUES('COT003','FINANZAS','ESPECIALISTA EN FINANZAS','TRABAJADOR DEPENDIEN-TE','5/12/1999','');
  8. INSERT INTO TP_EMP_CONTRATO(COD_CONTRATO,AREA,DESEMPEÑO,T_CONTRATO,INI_CONTRADO,SALARIO)
  9. VALUES('COT004','CAPITAL HUMANO','CAPACITADOR Y CONTRATADOR','TRABAJADOR FI-JO','7/10/1999','');
  10. INSERT INTO TP_EMP_CONTRATO(COD_CONTRATO,AREA,DESEMPEÑO,T_CONTRATO,INI_CONTRADO,SALARIO)
  11. VALUES('COT005','SERVICIOS POST-VENTA','ESPECIALISTAS DE MERCADEO','TRABAJADOR TIEMPO PARCIAL','15/9/1998','');
  12. INSERT INTO TP_EMP_CONTRATO(COD_CONTRATO,AREA,DESEMPEÑO,T_CONTRATO,INI_CONTRADO,SALARIO)
  13. VALUES('COT006','GESTIÓN TECNOLÓGICA','ORGANIZADOR','TRABAJADOR FI-JO','6/10/2005','');
  14. INSERT INTO TP_EMP_CONTRATO(COD_CONTRATO,AREA,DESEMPEÑO,T_CONTRATO,INI_CONTRADO,SALARIO)
  15. VALUES('COT007','INFRAESTRUCTURA','INGENIERO','TRABAJADOR FIJO','8/11/2004','');
  16. INSERT INTO TP_EMP_CONTRATO(COD_CONTRATO,AREA,DESEMPEÑO,T_CONTRATO,INI_CONTRADO,SALARIO)
  17. VALUES('COT008','PLANEACIÓN','GERENCIA GENERAL','TRABAJADOR TIEMPO PAR-CIAL','6/7/2003','');
  18. INSERT INTO TP_EMP_CONTRATO(COD_CONTRATO,AREA,DESEMPEÑO,T_CONTRATO,INI_CONTRADO,SALARIO)
  19. VALUES('COT009','SEGURIDAD','EMPLEADOS','TRABAJADOR FIJO','15/9/2001','');


Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION F_CONDICION_TP_TRABAJADOR (TP_trabajador VARCHAR)
  2.   RETURN NUMERIC
  3.  IS
  4.   condicion NUMERIC(8,2);
  5.  BEGIN
  6.    condicion:='';
  7.    IF TP_trabajador='TRABAJADOR DEPENDIENTE' THEN
  8.       condicion:=1400;
  9.    elsif TP_trabajador='TRABAJADOR FIJO' THEN
  10.       condicion:=2000;
  11.    ELSE
  12.       condicion:=800;
  13.    END IF;
  14.   RETURN condicion;
  15.  
  16.    UPDATE  TP_EMP_CONTRATO SET SALARIO =condicion;
  17.  END;
y con esto lo relaciono
Código SQL:
Ver original
  1. SELECT AREA,DESEMPEÑO, T_CONTRATO,
  2. F_CONDICION_TP_TRABAJADOR(T_CONTRATO)
  3. FROM TP_EMP_CONTRATO
pero al ejecutar no me guarda el valor de la condicion en salario
porfavor si me podrian ayudar con el codigo
gracias de atemano

Última edición por gnzsoloyo; 25/09/2013 a las 18:10 Razón: Usar el Highlight correcto, por favor.