【发布时间】:2014-11-16 15:43:12
【问题描述】:
我得到了这个触发器,似乎没问题,但我得到了错误:
触发器:
CREATE OR REPLACE TRIGGER TRG_TABLE_BI
BEFORE INSERT
ON TABLE
FOR EACH ROW
DECLARE
CURSOR cur_list IS
SELECT emp, name, day, salary, id,phone
FROM TABLE NATURAL JOIN OTHERTABLE
WHERE emp = :NEW.emp AND name = :NEW.name AND id = :NEW.id;
curChoice cur_list%ROWTYPE;
BEGIN
OPEN cur_list;
LOOP
FETCH cur_list INTO curChoice;
EXIT WHEN cur_list%NOTFOUND;
dbms_output.put_line(curchoice.id);
dbms_output.put_line(curChoice.emp);
dbms_output.put_line(curchoice.name);
END LOOP;
CLOSE cur_list;
END;
/
我得到了那些错误:
PLS-00049: bad bind variable 'NEW.emp'
如果我在 WHERE 子句中删除游标声明中的 ':',则会出现更多错误
谢谢。
【问题讨论】:
-
我想你正在使用一些认为 :new.emp 是它的变量的编辑器。然后关闭变量绑定
-
只是退后一步来阐明这种情况下的调试价格。始终尝试
COMPILE您在SQL*Plus中的代码,然后使用SHOW ERROR查看错误堆栈。这将非常有用。在调试PL/SQL代码中的错误时,您将节省大量时间。
标签: oracle plsql triggers cursor