tratando erro
12/03/2004
0
como eu trato o erro do oracle. o meu erro é quando tento apagar um registro de uma tabela que esta sendo usando em outra tabela.
se aguem sober o poder me ajudar agradeço.
se aguem sober o poder me ajudar agradeço.
Speedrob
Curtir tópico
+ 0
Responder
Posts
13/03/2004
Rfpsatin
véio, tipo assim, você foi muito vago!
como você esta apagando? numa stored procedure, num trigger, num bloco pl/sql ou numa aplicação delphi?
em cada um desses temos o conceito de tratamento de excessao, voce pode capturar essa excessao e tratar.
Vou consedirar que vc esta tratando isso no oracle, pois aqui é um forum de oracle. numa procedure vc poderia tratar +- assim
ta vendo os blocos exception acima? é só vc detectar qual o tipo de exception ele lança e colocar ali, caso vc nao saiba pode usar o OUTHERS
espero ter ajudado.
abraço
ricardo
como você esta apagando? numa stored procedure, num trigger, num bloco pl/sql ou numa aplicação delphi?
em cada um desses temos o conceito de tratamento de excessao, voce pode capturar essa excessao e tratar.
Vou consedirar que vc esta tratando isso no oracle, pois aqui é um forum de oracle. numa procedure vc poderia tratar +- assim
CREATE OR REPLACE PROCEDURE TEXTO_TABELA IS ARQ UTL_FILE.FILE_TYPE; LINHA VARCHAR2(50); R1 PRJATV¬ROWTYPE; BEGIN ARQ := UTL_FILE.FOPEN(´c:\teste´,´carga.sql´,´r´); LOOP UTL_FILE.GET_LINE(ARQ,LINHA); R1.CD_PROJ := SUBSTR(LINHA,1,6); R1.CD_ATIV := TO_NUMBER(SUBSTR(LINHA,7,3)); R1.DT_INI := TO_DATE(SUBSTR(LINHA,10,10),´DD/MM/YYYY´); R1.DT_FIM := TO_DATE(SUBSTR(LINHA,20,10),´DD/MM/YYYY´); INSERT INTO PRJATV (CD_PROJ, CD_ATIV, DT_INI, DT_FIM) VALUES (R1.CD_PROJ, R1.CD_ATIV, R1.DT_INI, R1.DT_FIM); END LOOP; EXCEPTION WHEN UTL_FILE.INVALID_PATH THEN RAISE_APPLICATION_ERROR(-20000,´CAMINHO INVÁLIDO´); WHEN UTL_FILE.INVALID_MODE THEN RAISE_APPLICATION_ERROR(-20001,´MODO DE USO INVÁLIDO´); WHEN UTL_FILE.INVALID_OPERATION THEN RAISE_APPLICATION_ERROR(-20002,´OPERACAO INCOMPATÍVEL´); WHEN NO_DATA_FOUND THEN COMMIT; UTL_FILE.FCLOSE_ALL; END; /
ta vendo os blocos exception acima? é só vc detectar qual o tipo de exception ele lança e colocar ali, caso vc nao saiba pode usar o OUTHERS
espero ter ajudado.
abraço
ricardo
Responder
Clique aqui para fazer login e interagir na Comunidade :)