当尝试在PL / SQL Oracle中创建INSTEAD OF触发器时,为什么会出现“错误的绑定变量”错误?

问题描述 投票:0回答:1

我有这四个表:

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; 
sql oracle plsql plsqldeveloper
1个回答
0
投票

您真正使用哪个数据库?因为,对于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>
© www.soinside.com 2019 - 2024. All rights reserved.