Создать/заменить триггер в белках
-
30-09-2019 - |
Вопрос
Я использую Squirrel 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"
Это связано со белкой? Если так, как я могу решить это?
Решение
Вы должны разгрузить плагин "sqlParam" в белках, после этого он не просит вас заполнить значения ": paramname" переменные
Другие советы
Вы можете добавить линию ссылки на свой триггер, чтобы она выглядела как
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, Toad и т. Д.).
Поделиться и наслаждаться.