procemiento pl/sql

tema enviado por ja en ORACLE
tema iniciado el 03/06/2009
Mi procedimiento es liquidar una nomina lo que pasa es no lo he podido terminar no se como terminar los otros dos cursores y mandar todas las respuestas a una nueva tabla que se llama rh_liquidacion y me salen unos errores que ni idea como solucionarlos si me pueden colaborar gracias.... CREATE OR REPLACE PROCEDURE liquidacion_nomina --FECHA DE CREACION :22/05/2009 --FINALIDAD: LIQUIDAR NOMINA DE LA COMPAÑIA ALMACENES EXITO --CREADO POR: ANDREA TORRES MEYER BECERRA ( pv_Compania_Codigo IN gn_compania.compania_codigo%TYPE, pv_Mes IN VARCHAR2, pv_Ano IN VARCHAR2 ) IS -- declaracion de variables ldt_Periodo DATE; lv_Codigo_Sucursal gn_sucursal.sucursl_codigo%TYPE; lv_Codigo_Dependencia gn_dependencia.dependencia_codigo%TYPE; lv_Codigo_Empleado rh_nomina.empleado_codigo%TYPE; lv_Cedula rh_nomina.hoj_vid_cedula%TYPE; -- declaracion de cursores CURSOR cursor_empleados ( cv_Compania_Codigo IN gn_compania.compania_codigo%TYPE ) IS SELECT a.sucursl_codigo, b.dependencia_codigo, c.empleado_codigo, c.hoj_vid_cedula, FROM gn_sucursal a INNER JOIN gn_dependencia b ON b.sucursl_codigo = a.sucursl_codigo INNER JOIN rh_nomina c ON c.dependencia_codigo = b.dependencia_codigo WHERE a.compania_codigo = cv_Compania_Codigo; CURSOR cursor_conceptos ( cv_Empleado_Codigo IN rh_concpts_empld.empleado_codigo%TYPE, cdt_Periodo DATE ) IS SELECT b.concepto_codigo, b.concepto_detalle, b.concpt_natrlz, a.valor*CASE WHEN b.concpt_natrlz = 'DV' THEN 1 ELSE -1 END AS valor_neto FROM rh_concpts_empld a INNER JOIN rh_conceptos b ON b.concepto_codigo = a.concepto_codigo WHERE a.empleado_codigo = cv_Empleado_Codigo AND a.fecha_inicio < ADD_MONTHS(cdt_Periodo,1) ORDER BY b.concpt_natrlz DESC, b.concepto_codigo; CURSOR cursor_novedades ( cv_Empleado_Codigo IN rh_concpts_empld.empleado_codigo%TYPE, cdt_Periodo DATE ) IS SELECT b.concepto_codigo, b.concepto_detalle, b.concpt_natrlz, a.valor_novdd*CASE WHEN b.concpt_natrlz = 'DV' THEN 1 ELSE -1 END AS valor_neto FROM rh_novedades a INNER JOIN rh_conceptos b ON b.concepto_codigo = a.concepto_codigo WHERE a.empleado_codigo = cv_Empleado_Codigo AND -- b.fech_liqdcn BETWEEN cdt_Periodo AND ADD_MONTHS(cdt_Periodo,1)-1 TRUNC(a.fech_liqdcn,'MM') = cdt_Periodo ORDER BY b.concpt_natrlz DESC, b.concepto_codigo; BEGIN ldt_Periodo := TO_DATE(pv_Mes||pv_Ano,'MMYYYY'); OPEN cursor_empleados(pv_Compania_Codigo); LOOP FETCH cursor_empleados INTO lv_Codigo_Sucursal, lv_Codigo_Dependencia, lv_Codigo_Empleado, lv_Cedula; EXIT WHEN cursor_empleados%NOTFOUND; dbms_output.put('lv_Codigo_Sucursal = '||lv_Codigo_Sucursal); dbms_output.put('lv_Codigo_Dependencia = '||lv_Codigo_Dependencia); dbms_output.put('lv_Codigo_Empleado = '||lv_Codigo_Empleado); dbms_output.put_line('lv_Cedula = '||lv_Cedula); /* BEGIN OPEN cursor_conceptos LOOP FETCH INTO ; EXIT WHEN %NOTFOUND; INSERT INTO TABLA (COIL1,COL2) VALUES (VAR1,VAR2); BEGIN END; END LOOP; CLOSE END; BEGIN OPEN cursor_novedades LOOP FETCH INTO ; EXIT WHEN %NOTFOUND; BEGIN END; END LOOP; CLOSE END; */ END LOOP; CLOSE cursor_empleados; EXCEPTION WHEN OTHERS THEN BEGIN NULL; END; END liquidacion_nomina; -- -------------------- ---FIN DE PROCEDIMIENTO -- --------------------