テーブルへのすべての挿入をトリガーしたい。場合によっては、name_event が使用可能なターゲット テーブルのリポジトリであり、これを挿入できます。利用できない場合があり、フォルダー テーブルのコードを確認する必要があります。
create or replace TRIGGER scheme2.Logger
BEFORE INSERT OR UPDATE ON scheme2.payments
FOR EACH ROW
BEGIN
INSERT INTO scheme1.db(ID, NAME_EVENT, TIME_EVENT)
VALUES( :NEW.id
, IF (select repo.code
from scheme2.repository repo
where repo.id = :NEW.repository_id) IS NOT NULL
THEN
(select repo.code
from scheme2.pay_repository repo
where repo.id = :NEW.repository_id)
ELSE
(select env.repository_code
from scheme2.folder env
where env.id = :NEW.folder_id)
, SYSDATE);
END;
このコードを試してみましたが、コンパイル エラーが発生しました。
Error(2,1): PL/SQL: SQL Statement ignored
行 2 は各行の行です
Error(4,5): PL/SQL: ORA-00936: Unknown expression.
行 4 は行への挿入です
エラーを修正するには?