PL/SQL コードの実行中に件名のエラーが発生し、コードのデバッグ中に、データベースで DBMS_JOB.SUBMIT の使用中にプロシージャで「COMMIT」を使用できないことがわかりました。
私の手順は少し複雑なので、参考としてサンプル コードを使用します。
DECLARE
x integer(30):=0.0;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X
,what => 'declare x integer:= 0.0; begin x:= x+1; end;'
,next_date => sysdate
,interval => 'NULL'
--,no_parse => FALSE
);
insert into tem_job_insert values (x);
update tem_job_insert set job_num = x+1;
--SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' ||to_char(x));
commit;
END;
エラー :
ORA-01426: 数値オーバーフロー
ORA-06512: 14行目
他のいくつかのデータベースで同じコード (サンプル コードと実際のコードの両方を意味します) を実行しようとしましたが、問題なく正常に動作します。問題はこれらの DB のみです。
詳細を追加するのを逃した場合は、お気軽にお問い合わせください。