特定のテーブルに対してinsert処理後、windowsバッチファイルを起動させるトリガーを作成したのですが、insert処理のcommit前にトリガーが起動しエラーとなってしまいます。
原因調査中になります。
※テーブル定義 CREATE TABLE INPUT_TEST ( ID NUMBER(8,0), NUM NUMBER(12,2), STR CHAR(8), VARSTR VARCHAR2(8), DT DATE, TIME0 TIMESTAMP(0), TIME6 TIMESTAMP, TIME9 TIMESTAMP(9), PRIMARY KEY(ID) ); ※トリガー create or replace trigger embulk_tr after insert on INPUT_TEST for each row begin -- OracleDB to BigQuery Bulk Insert bat IF INSERTING THEN dbms_output.put_line('-------------------------'); dbms_output.put_line('OracleDB to BigQuery Bulk Insert Start'); DBMS_SCHEDULER.CREATE_JOB ( JOB_NAME => 'EmbulkTest', JOB_TYPE => 'EXECUTABLE', JOB_ACTION => 'C:\Users\yazaki\Desktop\embulk\oracle_to_bigquery.bat'); DBMS_SCHEDULER.ENABLE('EmbulkTest'); dbms_output.put_line('OracleDB to BigQuery Bulk Insert End'); dbms_output.put_line('-------------------------'); END IF; end; / ※トリガーの情報 SQL> select trigger_name,status,triggering_event,action_type,TRIGGER_BODY from dba_triggers where trigger_name = 'EMBULK_TR'; TRIGGER_NAME STATUS TRIGGERING_EVEN ACTION_TYPE TRIGGER_BODY --------------- --------------- --------------- --------------- ---------------------------------------------------------------- EMBULK_TR ENABLED INSERT PL/SQL begin -- OracleDB to BigQuery Bulk Insert bat IF INSERTING THEN dbms_output.p ※エラー SQL> insert into INPUT_TEST (ID,NUM,STR) values ('310', '2849', 'chr1'); insert into INPUT_TEST (ID,NUM,STR) values ('310', '2849', 'chr1') * 行1でエラーが発生しました。: ORA-04092: トリガーはできません ORA-06512: "SYS.DBMS_ISCHED", 行175 ORA-06512: "SYS.DBMS_SCHEDULER", 行288 ORA-06512: "SYSTEM.EMBULK_TR", 行10 ORA-04088: トリガー'SYSTEM.EMBULK_TR'の実行中にエラーが発生しました ※トリガー実行ユーザの権限 SQL> select grantee,privilege,admin_option from dba_sys_privs where grantee = 'SYSTEM'; GRANTEE PRIVILEGE ADMIN_OPTION ------------------------------ ------------------------------ ------------------------------ SYSTEM UNLIMITED TABLESPACE NO SYSTEM CREATE ANY JOB NO SYSTEM CREATE EXTERNAL JOB NO SYSTEM CREATE MATERIALIZED VIEW NO SYSTEM CREATE TABLE NO SYSTEM UNLIMITED TABLESPACE NO SYSTEM GLOBAL QUERY REWRITE NO SYSTEM MANAGE ANY QUEUE YES SYSTEM ENQUEUE ANY QUEUE YES SYSTEM SELECT ANY TABLE NO SYSTEM DEQUEUE ANY QUEUE YES
回答1件
あなたの回答
tips
プレビュー