トリガーとトリガーによって呼び出されるストアード・プロシージャーを使用して3つの表にデータを挿入する以下のコード抜粋があります。トリガとプロシージャの両方が正常にコンパイルされています。Oracleのトリガーからプロシージャーを呼び出すときにエラーが発生する
CREATE OR REPLACE TRIGGER trigger_insert_attr AFTER
INSERT ON BSCS_WORK_SYNC_INFO FOR EACH ROW BEGIN
bscs_rateplan_sync(:new.project_id , :new.tmcode);
update BSCS_WORK_SYNC_INFO set comp_date=SYSDATE where
project_id=:new.project_id;
END trigger_insert_attr;
/
CREATE OR REPLACE
PROCEDURE bscs_rateplan_sync
(
tmcode_list IN VARCHAR2,
project_id IN VARCHAR2
)
AS
BEGIN
EXECUTE IMMEDIATE 'delete from ecm_mpulktm1 where
project_id='||project_id ;
EXECUTE IMMEDIATE 'delete from ecm_mpulktm2 where
project_id='||project_id ;
EXECUTE IMMEDIATE 'delete from ecm_fup_tariff_work where
project_id='||project_id ;
EXECUTE immediate 'insert into ecm_mpulktm1 select '||project_id||' , m1.*
from [email protected]_bscsprd_rpt m1 where tmcode in
('||tmcode_list||')'
;
EXECUTE immediate 'insert into ecm_mpulktm2 select '||project_id||' , m1.*
from [email protected]_bscsprd_rpt m1 where tmcode in
('||tmcode_list||')'
;
EXECUTE immediate 'insert into ecm_fup_tariff_work select '||project_id||'
, m1.* from [email protected]_bscsprd_rpt m1 where tmcode in
('||tmcode_list||')' ;
END;
/
しかし、データがテーブルBSCS_WORK_SYNC_INFOに挿入されている間、私は 以下のエラー取得しています:誰かがエラーを解決するために助けることができる
SQL Error: ORA-00933: SQL command not properly ended ORA-06512: at "ECMREPORT.BSCS_RATEPLAN_SYNC", line 6 ORA-06512: at "ECMREPORT.TRIGGER_INSERT_ATTR", line 2 ORA-04088: error during execution of trigger 'ECMREPORT.TRIGGER_INSERT_ATTR'
を?私はPL/SQLには比較的新しいので、上記のエラーを解決するための助けを求めるでしょう。テーブルBSCS_WORK_SYNC_INFOのデータは、Webサービスによって生成されます。また、手順の後にテーブル内の更新されるデータも実行されます。
「:new.tmcode」の値をトリガーに表示してください。 – nop77svk