Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Создание тригера с помощью JDBC


Автор: djiva 12.9.2005, 13:52
Здравствуйте!

Создаю триггер с помощью jdbc. Код следующий:

Код

CREATE OR REPLACE TRIGGER InsertIDTable01 BEFORE INSERT ON Table01
REFERENCING OLD AS OLD NEW AS NEW 
FOR EACH ROW 
begin
 if :new.id is null then
   select Table01_sequence.nextval into :new.id from dual;
 end if;
end;



Manager Console говорит, что в тригере ошибки в каждой строке.

Только я делаю какие-то изменения в коде тригера (будь-то добавление и удаление пробела) и прекомпилирую ошибки изчезают.

Помогите!! В чем проблема

Автор: LSD 12.9.2005, 14:23
Цитата(djiva @ 12.9.2005, 14:52)
Manager Console говорит, что в тригере ошибки в каждой строке.

Забавно, ошибка в каждой строке smile

Я думаю проблема в окончании строк (перевод строки и возврат каретки), что то там не так. Когда ты копируешь текст в Enterprise Manager Console они туда не корректно вставляются.

А в чем проблема, этот код из Java программы не выполняется?

Автор: djiva 12.9.2005, 16:04
Из java все нормально проходит, то есть скрипт выполняется без ошибок. Тригер выполняет функцию инкремента ID. Так вот - он не работает.

А на счет перевода строки надо попробывать

Автор: LSD 12.9.2005, 17:01
Цитата(djiva @ 12.9.2005, 17:04)
Тригер выполняет функцию инкремента ID. Так вот - он не работает.

Не понял, у триггера статутус VALID или INVALID? Выполни:
Код
select t.status from dba_objects t
  where t.object_name = 'INSERTIDTABLE01'

Автор: Sleepy_PIP 12.9.2005, 18:36
Цитата(djiva @ 12.9.2005, 16:04)
Из java все нормально проходит, то есть скрипт выполняется без ошибок. Тригер выполняет функцию инкремента ID. Так вот - он не работает.

А на счет перевода строки надо попробывать

не работает как? -
строчка вставляется, а ID остается null ?

Автор: djiva 12.9.2005, 18:39
Все я нашел ответ. Оказывается при создании с помощью JDBC нужно использовать тоько "\n" при переводе строки, но не "\r\n". Спасибо за совет!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)