Problemas en llamada a funcion
tema enviado por Carlos en ORACLE
tema iniciado el 08/11/2006
Hola amigos DJK,
Tengo el siguiente procedure
CREATE OR REPLACE PROCEDURE TRANS_CAT AS
auxDummy VARCHAR2(10);
CURSOR Cur_Reg_Nuevos_Cat IS
SELECT R.COD_CAT, R.COD_CAT_PADRE, R.DESCAT, R.CAT_NIVEL, R.CAT_TIPO, R.ID_CADENA
FROM CAR_CATPROD R
LEFT JOIN CATPROD C
ON R.COD_CAT = C.ID_CATPROD
AND R.ID_CADENA = C.ID_CADENA
WHERE C.ID_CATPADRE IS NULL;
CURSOR Cur_Reg_Actualiz_Cat IS
SELECT R.COD_CAT, R.COD_CAT_PADRE, R.DESCAT, R.CAT_NIVEL, R.CAT_TIPO, R.ID_CADENA
FROM CAR_CATPROD R
LEFT JOIN CATPROD C
ON R.COD_CAT = C.ID_CATPROD
AND R.ID_CADENA = C.ID_CADENA
WHERE R.COD_CAT_PADRE <> C.ID_CATPADRE
AND R.DESCAT <> C.DESCAT;
reg_nuevos Cur_Reg_Nuevos_Cat%ROWTYPE;
reg_actualiz Cur_Reg_Actualiz_Cat%ROWTYPE;
BEGIN
for reg_nuevos in cur_reg_nuevos_cat loop
DBMS_OUTPUT.PUT_LINE(TO_CHAR(REG_NUEVOS.COD_CAT) || ' ' || TO_CHAR(REG_NUEVOS.COD_CAT_PADRE) || ' ' || TO_CHAR(REG_NUEVOS.DESCAT) || ' ' || TO_CHAR(REG_NUEVOS.CAT_NIVEL) || ' ' || TO_CHAR(REG_NUEVOS.CAT_TIPO) || ' ' || TO_CHAR(REG_NUEVOS.ID_CADENA));
auxDummy := INSCAT(REG_NUEVOS.COD_CAT,REG_NUEVOS.COD_CAT_PADRE,REG_NUEVOS.DESCAT,REG_NUEVOS.CAT_NIVEL,REG_NUEVOS.CAT_TIPO,REG_NUEVOS.ID_CADENA);
COMMIT;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Done Inserting');
for reg_actualiz in cur_reg_actualiz_cat loop
DBMS_OUTPUT.PUT_LINE(TO_CHAR(REG_ACTUALIZ.COD_CAT) || ' ' || TO_CHAR(REG_ACTUALIZ.COD_CAT_PADRE) || ' ' || TO_CHAR(REG_ACTUALIZ.DESCAT) || ' ' || TO_CHAR(REG_ACTUALIZ.CAT_NIVEL) || ' ' || TO_CHAR(REG_ACTUALIZ.CAT_TIPO) || ' ' || TO_CHAR(REG_ACTUALIZ.ID_CADENA));
auxDummy := UPDCAT(REG_ACTUALIZ.COD_CAT,REG_ACTUALIZ.COD_CAT_PADRE,REG_ACTUALIZ.DESCAT,REG_ACTUALIZ.CAT_NIVEL,REG_ACTUALIZ.CAT_TIPO,REG_ACTUALIZ.ID_CADENA);
COMMIT;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Done Updating');
END TRANS_CAT;
/
y cada vez que llamo a la funcion INSCAT (que retorna '0' <-- con las comillas para que sea del tipo varchar2) me arroja el siguiente error:
ORA-06502: PL/SQL: error : error de conversion de caracter a numero numerico o de valor
ORA-06512: en "WSTEIN.TRANS_CAT", linea 27
ORA-06512: en linea 1
entonces mi pregunta es que estoy haciendo mal :S