1

フィールドREFERENTから値を取得し、それを解析し、いくつかのビューで行を見つけ、挿入する必要がある元の行にデータを入力するこのセクシーなトリガーがあります。次に、REFERENT フィールドを書き直し、余分なデータを削除します。

REFERENT フィールドは "-XXX-123" のようになります。ここで、123 はビュー内のデータを検索するキーです。それが理にかなっていることを願っています。

CREATE OR REPLACE TRIGGER TRI_UPDATE
BEFORE INSERT
ON TBLASCENTOUTPUT_X
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
WHEN (
new.STEVILKA_NAROCILA is NULL
      )
DECLARE
    PARSED_STNAROC   VARCHAR(255);
    PARSED_PRIMARY_VALUE VARCHAR(255);
BEGIN

    PARSED_STNAROC := SUBSTR(NEW.REFERENT, INSTR(NEW.REFERENT, '-', -1, 1) + 1);
    PARSED_PRIMARY_VALUE := SUBSTR(NEW.REFERENT, 1, INSTR(NEW.REFERENT, '-', -1, 1) - 1);

    select distinct v.STNAROCILA, v.DATNAROCILA, v.SIFKUPCA, v.STPONUDBE, PARSED_PRIMARY_VALUE 
        into  :NEW.STEVILKA_NAROCILA, :NEW.DATUM_NAROCILA, :NEW.SIFRA_KUPCA, :NEW.STEVILKA_PONUDBE, :NEW.REFERENT
        from ARH_NAROC v
        where v.STNAROCILA = PARSED_STNAROC;

END;

コンパイル時に次のエラーが発生します。

On line:  6
TRIGGER EASY.TRI_UPDATE
PLS-00201: identifier 'NEW.REFERENT' must be declared

助けてください。

4

1 に答える 1

5

前にコロン文字がありませんNEW.REFERENT

于 2013-03-21T08:29:47.940 に答える