sql >> データベース >  >> RDS >> Oracle

ORA-04076:NEWまたはOLDの指定が無効です - PL/SQL - Oracle Trigger

    :NEW を使用する必要があります および :OLD 挿入された列を参照するたびに。

    CREATE OR REPLACE TRIGGER ManageCall AFTER INSERT ON STATE_CHANGE FOR EACH ROW DECLARE x_coord NUMBER; y_coord NUMBER; BEGIN IF :NEW.ChangeType='C' THEN SELECT X, Y INTO x_coord, y_coord FROM TELEPHONE t WHERE t.PHONENO =:NEW.PHONENO; END IF; END;  

    WHEN を使用している場合 こちら (「WHEN句」を検索):

    したがって、以下も同様に機能するはずです:

    CREATE OR REPLACE TRIGGER ManageCall AFTER INSERT ON STATE_CHANGE FOR EACH ROW WHEN (NEW.ChangeType='C') DECLARE x_coord NUMBER; y_coord NUMBER; BEGIN SELECT X, Y INTO x_coord, y_coord FROM 電話 WHERE PHONENO =:NEW.PHONENO; END;  


    1. DBリンクを使用したJavaクエリは、Dbリンク接続を閉じません

    2. mysql:instrは単語の境界を指定します

    3. statement.execute()は、PL/SQLの最後にスラッシュを含むエラーを返します

    4. カスタムコードで複数の行を生成するphpコード