OracleDBのトリガーで、スケジュールジョブを作成しているのですが
初回インサート処理は成功するも
2回目のインサート処理では
ORA-27478 ジョブが実行中です。
とエラーで終了します。
スケジュールジョブを作成する時に、一意のジョブ名ではなく変数をつけてユニークなジョブ名にしたいです。
create or replace trigger embulk_tr after insert on INPUT_TEST for each row DECLARE pragma autonomous_transaction; begin dbms_output.put_line('-------------------------'); dbms_output.put_line('OracleDB to BigQuery Bulk Insert Start'); IF INSERTING THEN DBMS_SCHEDULER.CREATE_JOB ( JOB_NAME => 'Embulk_Test', JOB_TYPE => 'EXECUTABLE', JOB_ACTION => 'C:\Users\xxxxxx\Desktop\embulk\cmd.exe /c C:\Users\xxxxxx\Desktop\embulk\oracle_to_bigquery.bat', start_date => TO_DATE('2018/11/13 00:00:00','yyyy/mm/dd hh24:mi:ss'), end_date => TO_DATE('2999/12/31 00:00:00','yyyy/mm/dd hh24:mi:ss'), auto_drop => TRUE, enabled => TRUE ); END IF; dbms_output.put_line('OracleDB to BigQuery Bulk Insert End'); dbms_output.put_line('-------------------------'); end; /
更新箇所
SQL> create sequence Embulk_Test; 順序が作成されました。 SQL> select Embulk_Test.nextval from dual; NEXTVAL ---------- 1 SQL> select Embulk_Test.nextval from dual; NEXTVAL ---------- 2 <<pl/sql>> create or replace trigger embulk_tr after insert on INPUT_TEST for each row DECLARE pragma autonomous_transaction; begin dbms_output.put_line('-------------------------'); dbms_output.put_line('OracleDB to BigQuery Bulk Insert Start'); IF INSERTING THEN DBMS_SCHEDULER.CREATE_JOB ( JOB_NAME => 'Embulk_Test.nextval', JOB_TYPE => 'EXECUTABLE', JOB_ACTION => 'C:\Users\yazaki\Desktop\embulk\cmd.exe /c C:\Users\yazaki\Desktop\embulk\oracle_to_bigquery.bat', start_date => TO_DATE('2018/11/13 00:00:00','yyyy/mm/dd hh24:mi:ss'), end_date => TO_DATE('2999/12/31 00:00:00','yyyy/mm/dd hh24:mi:ss'), auto_drop => TRUE, enabled => TRUE ); END IF; dbms_output.put_line('OracleDB to BigQuery Bulk Insert End'); dbms_output.put_line('-------------------------'); DBMS_SCHEDULER.DROP_JOB('Embulk_Test.nextval', force => true); end; / <<業務処理を実行>> SQL> exec CRE_SAMPLE_DATA; BEGIN CRE_SAMPLE_DATA; END; * 行1でエラーが発生しました。: ORA-23306: スキーマEMBULK_TESTが存在しません。 ORA-06512: "SYS.DBMS_ISCHED", 行175 ORA-06512: "SYS.DBMS_SCHEDULER", 行288 ORA-06512: "SYSTEM.EMBULK_TR", 行9 ORA-04088: トリガー'SYSTEM.EMBULK_TR'の実行中にエラーが発生しました ORA-06512: "SYSTEM.CRE_SAMPLE_DATA", 行23 ORA-06512: 行1

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/03 02:42
2018/12/04 05:06
2018/12/04 05:23
2018/12/04 06:15