11

このトリガーを交換しようとすると、リス3.2.0を使用します。

CREATE OR REPLACE TRIGGER crw_ins_trig
  BEFORE INSERT OR UPDATE ON crew
  FOR EACH ROW
DECLARE

BEGIN
    if (:new.crw_id is null) then
        select crw_id_seq.nextval
        into :new.crw_id
        from dual;
    end if;  
END;
/

「パラメータ値を入力してください。':new'の値」というメッセージが表示されます。

[OK]をクリックすると、結果メッセージは次のようになります。

Warning:   Warning: execution completed with warning
SQLState:  null
ErrorCode: 17110
Position: 27

Query 1 of 1, Rows read: 0, Elapsed time (seconds) - Total: 0.023, SQL query: 0.023, Building output: 0

私のアプリケーションではエラーが発生します"ORA-04098: trigger 'CRW_INS_TRIG' is invalid and failed re-validation"

これはリスと関係がありますか?もしそうなら、どうすればこれを解決できますか?

4

2 に答える 2

15

SQuirrelで「sqlparam」プラグインをアンロードする必要があります。その後、「:paramName」変数の値を入力するように求められません。

于 2011-11-02T19:52:38.877 に答える
0

トリガーにREFERENCING行を追加して、次のようにすることができます。

CREATE OR REPLACE TRIGGER crw_ins_trig  
  BEFORE INSERT OR UPDATE ON crew  
  REFERENCING NEW AS NEW
              OLD AS OLD
  FOR EACH ROW  
BEGIN  
    if (:new.crw_id is null) then  
        select crw_id_seq.nextval  
        into :new.crw_id  
        from dual;  
    end if;    
END crw_ins_trig;

それを試してみてください。動作しない場合は、別のツール(SQL * Plus、PL / SQL Developer、Toadなど)を使用してステートメントを実行してみてください。

共有してお楽しみください。

于 2010-12-02T12:06:59.390 に答える