1

以下にコードの小さなスニペットを示します。error_log テーブルの ORA_ERR_TAG$ 列に挿入できません。変数 v_errblk を削除すると、正常に動作します。タグ内の変数情報を取得するにはどうすればよいですか。

 Declare
     v_errblk NUMBER (2):= 0;
    BEGIN
    v_errblk := 1;
    update....;
    Commit;
    v_errblk := 2;
    update ....
    commit;
    v_errblk = 3;
    insert into test3
    Select * FROM   test1
      WHERE  EXISTS (SELECT 1 FROM   test2 WHERE  test1.Abc = test2.abc)
     LOG ERRORS ('ERROR BETWEEN BLOCK:' || v_errblk || 'AND' || v_errblk + 1||'') REJECT LIMIT UNLIMITED;

    END;
4

1 に答える 1

1

ここv_errblk + 1であなたを傷つけています。最初は式の制限だと思っていましたが、LOG ERRORSこのような単純なことをしようとすると、次のように失敗しますORA-01722: invalid number

select '1 + 2 = ' || 1 + 2 from dual

かっこを入れてみてくださいv_errblk + 1

LOG ERRORS ('ERROR BETWEEN BLOCK:' || v_errblk || 'AND' || (v_errblk + 1))

また、末尾の|| ''. 必要ありません。

于 2013-03-29T21:27:49.720 に答える