create or replace trigger calculation
before insert on booking
DECLARE name varchar2(20);
BEGIN
IF INSERTING THEN
select first_name into name from CUSTOMER where NIC =: NEW.NIC ;
dbms_output.put_line(name);
END IF;
end;
这里NEW.NIC是预订表的属性。
它给了我以下错误:
错误:PLS-00801:内部错误[ph2csql_strdef_to_diana:bind]错误: PLS-00801:内部错误[phdite:node kind]错误(4,1):PL / SQL:SQL 语句被忽略错误(4,35):PL / SQL:ORA-06544:PL / SQL:内部 错误,参数:[ph2csql_strdef_to_diana:bind],[],[],[],[],[], [],[]错误(5,1):PL / SQL:忽略语句
答案 0 :(得分:1)
假设您使用的是行级触发器,请使用:NEW.col
引用该列,例如:
CREATE OR REPLACE TRIGGER calculation before
INSERT ON booking
FOR EACH ROW
DECLARE
name VARCHAR2(20);
BEGIN
IF INSERTING THEN
SELECT first_name INTO name FROM CUSTOMER WHERE NIC =:NEW.NIC ;
dbms_output.put_line(name);
END IF;
END;
答案 1 :(得分:0)
你有NIC =: NEW.NIC ;
而它应该是 NIC =:NEW.NIC ;
注意删除 =:
后的空格。