powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Неправильно создаётся триггер
6 сообщений из 6, страница 1 из 1
Неправильно создаётся триггер
    #36066430
korg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Oracle 10g XE,
делаю по примеру из фага для создания триггера.

CREATE TABLE ABON_INF (
"AB_ID" NUMBER DEFAULT NULL,
"SEX_ID" int DEFAULT 0 NOT NULL ,
"NAME" varchar(160) DEFAULT '' NOT NULL ,
PRIMARY KEY ("AB_ID")
)

create sequence AB_INF_SEQ
increment by 1
start with 1
nomaxvalue
nocycle
nocache

create or replace trigger ABON_INF_TRIG
before insert or update on ABON_INF
for each row
begin
if :new.AB_ID is null then
select AB_INF_SEQ.nextval into :new.AB_ID from dual;
end if;
end;
/

выдаёт ошибку (6:54)PLS-00049: bad bind variable 'NEW.ABONENT_ID'

фаговый пример срабатывает, в чём ошибка?
...
Рейтинг: 0 / 0
Неправильно создаётся триггер
    #36066970
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korgOracle 10g XE,
делаю по примеру из фага для создания триггера.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
CREATE TABLE ABON_INF (
  "AB_ID" NUMBER DEFAULT NULL,
  "SEX_ID" int DEFAULT  0  NOT NULL ,
  "NAME" varchar( 160 ) DEFAULT '' NOT NULL ,
  PRIMARY KEY ("AB_ID")
)

create sequence AB_INF_SEQ
increment by  1 
start with  1 
nomaxvalue
nocycle
nocache

create or replace trigger ABON_INF_TRIG
before insert or update on ABON_INF
for each row
begin
  if :new.AB_ID is null then
     select AB_INF_SEQ.nextval into :new.AB_ID  from dual;
   end if;
end;
/

выдаёт ошибку (6:54)PLS-00049: bad bind variable 'NEW.ABONENT_ID'

фаговый пример срабатывает, в чём ошибка?

Я так понимаю, Вы привели пример из учебника. Он работает. А теперь можно увидеть то, что Вы выполняли и что не работает?

PS: Что-то учебник гонит насчёт DEFAULT NULL для поля, которое будет первичным ключом... :)
...
Рейтинг: 0 / 0
Неправильно создаётся триггер
    #36067082
korg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer,

К сожалению нет, в качестве образца, я использовал пример данный в фаге. А то что привёл я, это реальный код. Попробую пересоздать таблицу без default null для поля ab_id
...
Рейтинг: 0 / 0
Неправильно создаётся триггер
    #36067128
korg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
После того как в поле ID было убрано DEFAULT NULL, всё заработало спасибо за помощь.
...
Рейтинг: 0 / 0
Неправильно создаётся триггер
    #36067490
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korg,

э, нет, что-то Вы недоговариваете. Ошибка-то такая:
Код: plaintext
( 6 : 54 )PLS- 00049 : bad bind variable 'NEW.ABONENT_ID'
А поля ABONENT_ID у Вас в примере нет. Потому я и просил показать то, что Вы выполняли...

А насчёт NOT NULL - это просто лишнее ограничение, если мы на этот же столбец делаем первичным ключом (который сам даёт ограничения уникальности и NOT NULL).
...
Рейтинг: 0 / 0
Неправильно создаётся триггер
    #36069989
korg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer,

Прошу прощения в самом деле, NEW.AB_ID, просто пробовал создавать несколько схожих вариантов пытаясь понять в чём дело и при копировании перепутал. А после того как убрал DEFAULT NULL всё заработало ещё раз спасибо за помощь.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Неправильно создаётся триггер
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]