Доброе время суток!
Имеет меня следующая проблема.
Пытаюсь создать много таблиц триггеров и пр. скриптом:
CREATE TABLE TAAA
(
... много чего
);
CREATE SEQUENCE TAAA_SEQ INCREMENT BY 1 START WITH 1;
CREATE OR REPLACE TRIGGER TAAA_TRIGGER
BEFORE INSERT ON TAAA
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
WHEN ( NEW.CAUTOID IS NULL )
DECLARE
tmpVar NUMBER;
BEGIN
tmpVar := 0;
SELECT TAAA_SEQ.NEXTVAL INTO tmpVar FROM dual;
:NEW.CAUTOID := tmpVar;
END ;
/
CREATE TABLE TBBB
(
... много чего
);
Проблема состоит в том что, если после CREATE ... TRIGGER ...
стоит что-нибудь ещё, в данном случае CREATE TABLE
то Oracle ругается сообщаяя мне, что триггер был создан с ошибками при компиляции. На практике сие означает что TRIGGER c данным именем не создаётся...
Где ашипка в синтаке??? Help, please !!!
Здравствуйте, vector3D, Вы писали:
D>Кстати, пустая строка не мешает.
В некоторых версиях мешала. Относится ли Ваша к этому списку, если честно, лень проверять
Кстати, переменная в этом триггере вообще не нужна. Достаточно единственной строки select into.
D>Но кажется, я уже дальше прошёл. Если открыть триггер в Administration->Trigger там есть и более конкретная ошибка: PLS-00920: Parameter plsql_native_library_dir не определён.
Это же можно получить из sql*plus, командой show errors.