Создать / заменить триггер в Белке - PullRequest
11 голосов
/ 02 декабря 2010

я использую белку 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»

Когда я нажимаю ОК, появляется сообщение:

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"

Это имеет отношение к Белке? Если так, как я могу решить это?

Ответы [ 2 ]

15 голосов
/ 02 ноября 2011

Вы должны выгрузить плагин "sqlparam" в SQuirrel, после чего он не будет запрашивать ввод значений для переменных ": paramName"

0 голосов
/ 02 декабря 2010

Возможно, вы захотите добавить строку ССЫЛКИ к вашему триггеру, чтобы она выглядела как

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 и т. Д.).

Делись и наслаждайся.

...