Oracle 10g iSQL*Plus, warning при выполнении CREATE TRIGGER
От: vector3D  
Дата: 07.09.06 08:41
Оценка:
Доброе время суток!
Имеет меня следующая проблема.
Пытаюсь создать много таблиц триггеров и пр. скриптом:

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 !!!
Re: Oracle 10g iSQL*Plus, warning при выполнении CREATE TRIG
От: Softwarer http://softwarer.ru
Дата: 07.09.06 08:43
Оценка:
Здравствуйте, vector3D, Вы писали:

D>то Oracle ругается сообщаяя мне, что триггер был создан с ошибками при компиляции. На практике сие означает что TRIGGER c данным именем не создаётся...


Признаться, несколько сомневаюсь в истинности этого утверждения.

D>Где ашипка в синтаке??? Help, please !!!


Уберите пустую строку внутри тела триггера.
Re[2]: Oracle 10g iSQL*Plus, warning при выполнении CREATE T
От: vector3D  
Дата: 07.09.06 09:34
Оценка:
Здравствуйте, Softwarer, Вы писали:

D>>то Oracle ругается сообщаяя мне, что триггер был создан с ошибками при компиляции. На практике сие означает что TRIGGER c данным именем не создаётся...


S>Признаться, несколько сомневаюсь в истинности этого утверждения.


S>Уберите пустую строку внутри тела триггера.


И правильно что сомневаетесь, триггер создаётся но INVALID. T.e. ездить на нём всё равно нельзя. A Warning я могу в оригинале привевести, но это немецкий...
Кстати, пустая строка не мешает.

Но кажется, я уже дальше прошёл. Если открыть триггер в Administration->Trigger там есть и более конкретная ошибка: PLS-00920: Parameter plsql_native_library_dir не определён.

Ok, думаю дальше я уже разберусь, Спасибо.
Re[3]: Oracle 10g iSQL*Plus, warning при выполнении CREATE T
От: Softwarer http://softwarer.ru
Дата: 07.09.06 09:41
Оценка:
Здравствуйте, vector3D, Вы писали:

D>Кстати, пустая строка не мешает.


В некоторых версиях мешала. Относится ли Ваша к этому списку, если честно, лень проверять

Кстати, переменная в этом триггере вообще не нужна. Достаточно единственной строки select into.

D>Но кажется, я уже дальше прошёл. Если открыть триггер в Administration->Trigger там есть и более конкретная ошибка: PLS-00920: Parameter plsql_native_library_dir не определён.


Это же можно получить из sql*plus, командой show errors.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.