Problemas con el error ORA-06512
Mirad hago un procedimiento sencillo k es una extraccion de SAP a oracle si me pudierais hechar una manoi os lo agradeceria
hola tengo un proceso k kuando lo kompilo no me da ningun error de compilacion pero al ejecutarlo me da error es una estraccion simple de sap a oracle si me podeis decir algo os lo agradeceria aki os adjunto el codigo
CREATE OR REPLACE PROCEDURE T127LO05 IS
------------------------------
-- Declaraci贸n de variables --
------------------------------
vlMsg VARCHAR2(300);
inProceso varchar2(8); -- Almacenara el id del proceso
sFlag varchar2(8); -- Nos llevara el control para en caso de producirse un error saber donde
sMandante VARCHAR2(3); -- Mandante en SAP
sFecha DATE;
------------------------------
-- Definici贸n de cursores ----
------------------------------
-- Cursor que obtiene el maestro de niveles de precios en SAP
CURSOR cResTransfer(inMandante IN VARCHAR2) IS
SELECT DISTINCT
SUBSTR(KUNNR,7) as COD_RES,
SUBSTR(KUNN2,7) as COD_RES_ANT
FROM SAPPRD.KNVP@SAPR3
WHERE PARVW='Z2'
AND MANDT= inMandante;
-----------------------------
-- Seccion ejecutable
-----------------------------
BEGIN
sFlag:= 'Ini';
inProceso := 'T127LO05';
-- Insertamos el inicio del proceso en la tabla de errores
InsertLog (inProceso,'Inicio T127LO05 - Maestro de Restaurantes Transfers','A');
COMMIT;
SELECT VALOR
INTO sMandante
FROM T_AUX_CONSTANTES
WHERE COD_CONST='MANDANTESAP';
-- Insertamos en la tabla de Res Transfer
FOR rResTransfer IN cResTransfer(sMandante) LOOP
BEGIN
sFlag:=rResTransfer.COD_RES || 'S_FECHAAP';
SELECT FEC_APERTURA
INTO sFecha
FROM LOC.RESTAURANTE
WHERE COD_REST=rResTransfer.COD_RES;
-- EXCEPTION
-- when no_data_found then
-- sFecha:=null;
END;
BEGIN
sFlag:=rResTransfer.COD_RES || 'I_TPTRANSFER';
INSERT INTO LOC.REST_TRANSFER (COD_REST_ANT,COD_REST,FEC_TRANSFER)
VALUES(rResTransfer.COD_RES_ANT,rResTransfer.COD_RES,sFecha);
--EXCEPTION
-- WHEN DUP_VAL_ON_INDEX THEN
END;
END LOOP;
COMMIT;
sFlag:= 'Fin';
-- Insertamos el final del proceso en la tabla de errores
InsertLog(inProceso,'Fin T127LO05 - Insert de horarios de apertura','A');
COMMIT;
-- Control de excepciones
EXCEPTION
-- Para cualquier error, deshacemos la transacci贸n
WHEN OTHERS THEN
vlMsg:=sqlerrm;
ROLLBACK;
-- Insertamos el error en la tabla de errores
InsertLog(inProceso,'ERROR T127LO05 - COD_RESTAURANTE flag : ' || sFlag,'E');
InsertLog(inProceso,vlMsg,'E');
COMMIT;
DBMS_OUTPUT.PUT_LINE('ERROR T127LO05 - COD_RESTAURANTE flag : ' || sFlag);
RAISE_APPLICATION_ERROR(-20001,'Error generico en T127LO05. Error: ');
END;
/
y ahora el error
The following error has occurred:
ORA-20001: Error generico en T127LO05. Error:
ORA-06512: en "SICOR.T127LO05", l铆nea 93
ORA-06512: en l铆nea 2
Gracias pe帽a y un saludo
hola tengo un proceso k kuando lo kompilo no me da ningun error de compilacion pero al ejecutarlo me da error es una estraccion simple de sap a oracle si me podeis decir algo os lo agradeceria aki os adjunto el codigo
CREATE OR REPLACE PROCEDURE T127LO05 IS
------------------------------
-- Declaraci贸n de variables --
------------------------------
vlMsg VARCHAR2(300);
inProceso varchar2(8); -- Almacenara el id del proceso
sFlag varchar2(8); -- Nos llevara el control para en caso de producirse un error saber donde
sMandante VARCHAR2(3); -- Mandante en SAP
sFecha DATE;
------------------------------
-- Definici贸n de cursores ----
------------------------------
-- Cursor que obtiene el maestro de niveles de precios en SAP
CURSOR cResTransfer(inMandante IN VARCHAR2) IS
SELECT DISTINCT
SUBSTR(KUNNR,7) as COD_RES,
SUBSTR(KUNN2,7) as COD_RES_ANT
FROM SAPPRD.KNVP@SAPR3
WHERE PARVW='Z2'
AND MANDT= inMandante;
-----------------------------
-- Seccion ejecutable
-----------------------------
BEGIN
sFlag:= 'Ini';
inProceso := 'T127LO05';
-- Insertamos el inicio del proceso en la tabla de errores
InsertLog (inProceso,'Inicio T127LO05 - Maestro de Restaurantes Transfers','A');
COMMIT;
SELECT VALOR
INTO sMandante
FROM T_AUX_CONSTANTES
WHERE COD_CONST='MANDANTESAP';
-- Insertamos en la tabla de Res Transfer
FOR rResTransfer IN cResTransfer(sMandante) LOOP
BEGIN
sFlag:=rResTransfer.COD_RES || 'S_FECHAAP';
SELECT FEC_APERTURA
INTO sFecha
FROM LOC.RESTAURANTE
WHERE COD_REST=rResTransfer.COD_RES;
-- EXCEPTION
-- when no_data_found then
-- sFecha:=null;
END;
BEGIN
sFlag:=rResTransfer.COD_RES || 'I_TPTRANSFER';
INSERT INTO LOC.REST_TRANSFER (COD_REST_ANT,COD_REST,FEC_TRANSFER)
VALUES(rResTransfer.COD_RES_ANT,rResTransfer.COD_RES,sFecha);
--EXCEPTION
-- WHEN DUP_VAL_ON_INDEX THEN
END;
END LOOP;
COMMIT;
sFlag:= 'Fin';
-- Insertamos el final del proceso en la tabla de errores
InsertLog(inProceso,'Fin T127LO05 - Insert de horarios de apertura','A');
COMMIT;
-- Control de excepciones
EXCEPTION
-- Para cualquier error, deshacemos la transacci贸n
WHEN OTHERS THEN
vlMsg:=sqlerrm;
ROLLBACK;
-- Insertamos el error en la tabla de errores
InsertLog(inProceso,'ERROR T127LO05 - COD_RESTAURANTE flag : ' || sFlag,'E');
InsertLog(inProceso,vlMsg,'E');
COMMIT;
DBMS_OUTPUT.PUT_LINE('ERROR T127LO05 - COD_RESTAURANTE flag : ' || sFlag);
RAISE_APPLICATION_ERROR(-20001,'Error generico en T127LO05. Error: ');
END;
/
y ahora el error
The following error has occurred:
ORA-20001: Error generico en T127LO05. Error:
ORA-06512: en "SICOR.T127LO05", l铆nea 93
ORA-06512: en l铆nea 2
Gracias pe帽a y un saludo
Para ver el error ORacle que est谩 dando exactamente,
sustituye:
RAISE_APPLICATION_ERROR(-20001,'Error generico en T127LO05. Error: ');
por
RAISE_APPLICATION_ERROR(-20001,'Error '||to_char(sqlcode)||' en T127LO05 ');
END;
sustituye:
RAISE_APPLICATION_ERROR(-20001,'Error generico en T127LO05. Error: ');
por
RAISE_APPLICATION_ERROR(-20001,'Error '||to_char(sqlcode)||' en T127LO05 ');
END;
la salida k me da ahora es esta ORA-20001: Error -6502 en T127LO05 alguna pista mas????
Saludos
Saludos
