Почему при попытке создать триггер INSTEAD OF в PL / SQL Oracle появляется ошибка «переменная плохого связывания»? - PullRequest
0 голосов
/ 01 декабря 2019

У меня есть эти 4 таблицы:

Suppliers( id_sup, name, city)

Products (id_prod, name, city)

Companies (id_co, name, city)

Deliveries (id_sup, id_prod, id_co)

Я создал представление для Доставки под названием "v_deliveries", и я хочу создать триггер вместо так, чтобы, если кто-то попытается вставить данные в представление, он будетна самом деле добавить его в таблицу поставок. Вот что я пробовал:

CREATE OR REPLACE TRIGGER new_deliv_trigg
INSTEAD OF INSERT ON v_deliveries FOR EACH ROW
BEGIN
INSERT INTO Deliveries (id_sup, id_prod, id_co)
VALUES (:NEW.id_sup, :NEW.id_prod, :NEW.id_co);
End; 

1 Ответ

0 голосов
/ 01 декабря 2019

Какую базу данных вы действительно используете? Потому что, что касается Oracle, он работает нормально:

SQL> create table deliveries (id_sup number, id_prod number, id_co number);

Table created.

SQL> create or replace view v_deliveries as select * From deliveries;

View created.

SQL>
SQL> CREATE OR REPLACE TRIGGER new_deliv_trigg
  2  INSTEAD OF INSERT ON v_deliveries FOR EACH ROW
  3  BEGIN
  4  INSERT INTO Deliveries (id_sup, id_prod, id_co)
  5  VALUES (:NEW.id_sup, :NEW.id_prod, :NEW.id_co);
  6  End;
  7  /

Trigger created.

SQL>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...