Oracle SQL错误PLS-00049:绑定变量错误';新的.NOOFCUSTOMERS';
我必须创建一个触发器,将“NoOfCustomers”添加到存储表中。如果客户数量大于限制,则会显示错误消息。我在尝试运行触发器时遇到错误“坏绑定变量'NEW.NOOFCUSTOMERS'”,我似乎不知道为什么Oracle SQL错误PLS-00049:绑定变量错误';新的.NOOFCUSTOMERS';,sql,oracle,oracle11g,oracle-sqldeveloper,Sql,Oracle,Oracle11g,Oracle Sqldeveloper,我必须创建一个触发器,将“NoOfCustomers”添加到存储表中。如果客户数量大于限制,则会显示错误消息。我在尝试运行触发器时遇到错误“坏绑定变量'NEW.NOOFCUSTOMERS'”,我似乎不知道为什么 CREATE OR REPLACE TRIGGER NoOfCustomersTrigger BEFORE INSERT ON STORE FOR EACH ROW DECLARE V_CAPACITY SHOPS.LIMIT%TYPE;
CREATE OR REPLACE TRIGGER NoOfCustomersTrigger
BEFORE INSERT ON STORE
FOR EACH ROW
DECLARE V_CAPACITY SHOPS.LIMIT%TYPE;
BEGIN
SELECT LIMIT INTO V_LIMIT
FROM SHOPS, SERVES
WHERE CUSTID = SERVES.CUSTID AND STORENO = :NEW.STORENO;
IF (:NEW.NOOFCUSTOMERS > V_LIMIT) THEN
RAISE_APPLICATION_ERROR (-20004,'The Number of Customers exceeds the LIMIT');
END IF;
END;
看起来你的代码中有一些错误
V_限制
,而不是在代码中使用V_容量
列
错误,列必须引用为TABLE.column\u NAME或TABLE\u ALIAS.column\u NAME李>
试着这样,
CREATE OR REPLACE
TRIGGER noofcustomerstrigger
BEFORE INSERT ON STORE
FOR EACH ROW
DECLARE v_limit shops.LIMIT%TYPE;
BEGIN
SELECT LIMIT INTO v_limit
FROM shops A, serves b
WHERE A.custid = b.custid AND storeno = :NEW.storeno;
IF (:NEW.noofcustomers > v_limit) THEN
raise_application_error (-20004,'The Number of Customers exceeds the LIMIT');
END IF;
END;
看起来你的代码中有一些错误
V_限制
,而不是在代码中使用V_容量
列
错误,列必须引用为TABLE.column\u NAME或TABLE\u ALIAS.column\u NAME李>
试着这样,
CREATE OR REPLACE
TRIGGER noofcustomerstrigger
BEFORE INSERT ON STORE
FOR EACH ROW
DECLARE v_limit shops.LIMIT%TYPE;
BEGIN
SELECT LIMIT INTO v_limit
FROM shops A, serves b
WHERE A.custid = b.custid AND storeno = :NEW.storeno;
IF (:NEW.noofcustomers > v_limit) THEN
raise_application_error (-20004,'The Number of Customers exceeds the LIMIT');
END IF;
END;
我刚刚意识到,我是否需要在其中创建NOOFCUSTOMERS?您是否在询问是否需要表中预先存在
NOOFCUSTOMERS
?由于pl/SQL代码在编译时对表结构求值,所以答案是肯定的。是的,我一问就明白了。现在我有两个错误:1)PL/SQL:ORA-00918:column定义模糊2)PL/SQL:SQL语句ignoredORA-00918意味着两个表中都存在同名的列-在查询中为列添加前缀:tablename.columnname
。我刚刚意识到,我是否需要在其中创建NOOFCUSTOMERS?您是否询问是否需要表中预先存在NOOFCUSTOMERS
?由于pl/SQL代码在编译时对表结构求值,所以答案是肯定的。是的,我一问就明白了。现在我有两个错误:1)PL/SQL:ORA-00918:column定义不明确2)PL/SQL:SQL语句ignoredORA-00918表示两个表中都存在同名的列-在查询中为列添加前缀:tablename.columnname
。