0
まず、私はネイティブスピーカーではなく、私の英語には申し訳ありません。オラクルキャッチ外部キー違反
私はOracleストアドプロシージャを持っています。このストアドプロシージャ内で、私はORA-02291例外をスローする挿入がありますが、私の問題はそれが例外をスローしないということです。
CREATE OR REPLACE PROCEDURE X.mi_procedure (
xano IN NUMBER,
xprograma IN VARCHAR2,
Xciclo IN VARCHAR2,
yresultado OUT BOOLEAN,
ycodope OUT VARCHAR2
)
IS
............
DBMS_OUTPUT.PUT_LINE('hola');
INSERT INTO x.A
(ano, cod_programa, centro, area_estudio, c_destino, REF,
cursos, num_becas, num_meses, observaciones)
SELECT ano, cod_programa, centro, area_estudio, c_destino, REF, cursos,
num_becas, num_meses, observaciones
FROM X.W
WHERE cod_programa = xprograma AND ano = xano
AND xciclo ='P;
DBMS_OUTPUT.PUT_LINE('error'||SQLCODE)
....................
COMMIT;
EXCEPTION
WHEN OTHERS THEN
RAISE;
end X.mi_procedure;
私の問題は、Oracleが手順完全言うとどんな ORA-02291例外をスローし、dmbsoputはないということです。
はいはい error0
しかしIでのSQL実行している場合SCRIPT ORACLEは ORA-02291例外をスローします。
誰かがこの状況を説明できますか?
問題は手続きのparameteresの値だった
ストアドプロシージャをコンパイルするときに例外を待っていますか? – AlexSmet
これは通常、実行は実際にはそのブロックに到達しないことを意味します。私はそれがあなたの上に 'put_line( 'hola')'を持っていて、そこに実行があるかどうかを調べると考えています。プロシージャは実際にそれを画面(または出力を指示している場所)に書き出しますか? – mathguy