を発射しながら、テーブルのエラーを突然変異このトリガーが起動されている間、私はエラーORA-04091を受け取る:トリガー
CREATE OR REPLACE TRIGGER SendNotifications
AFTER UPDATE OF penalty_amount ON Penalites
FOR EACH ROW
DECLARE
phone_no number(9,0);
BEGIN
SELECT PHONE_NUMBER INTO phone_no
FROM ADRESSES
INNER JOIN ORDERS
ON adresses.ID_READER = orders.ID_READER
INNER JOIN PENALITES
ON orders.ID_ORDER = penalites.ID_ORDER
WHERE :new.ISPAID = 'N';
DBMS_OUTPUT.PUT_LINE('Phone numbers where selected.');
END;
/
私は私が使用する必要がありますね:新しいです。と:古い。私はそれに対処する方法がわかりません。何か提案や出発点を教えていただけますか?
あなたは何を達成しようとしていますか?まず、ローカル変数にデータを選択したり、カーソルを開いたりしない限り、 'select'文を使用することはできません。トリガーは呼び出し側に何も返すことができないので、 'sys_refcursor'を開いて返すことはできません。カーソルループを作成し、修正されている 'penalty'行に関連する行だけを処理したい場合は、' penalties'への結合を削除し、 'orders.id_order =:new.id_order'を使用しますが、私はそれがあなたが本当に欲しいものなのか分からない。 –
これをローカル変数に選択します。私は自分の投稿を更新しました。 – monterinio