【发布时间】:2021-05-17 03:28:21
【问题描述】:
我有两张桌子,COPY 和 BORROW。他们的专栏是:
COPY (
Copy_id,
Bk_id,
Loc_id,
Opinion
)
和
BORROW (
Cus_evo,
B_Date,
R_Date,
Fee,
Copy_id,
Cus_id
)
我想配置一个触发器,确保存储在确切位置(伦敦)的副本(来自COPY 表的Loc-id 列)不能在12 月借用(来自BORROW 表的B_Date 列) .
我创建了以下触发器:
CREATE OR REPLACE TRIGGER BORROW_TRIGGER
BEFORE INSERT ON BORROW FOR EACH ROW BEGIN
IF(TO_CHAR(TO_DATE(:NEW.B_Date, 'DD-MMM-YYYY'),'MMM'= 'DEC')
AND :NEW.Loc_id='LC0001')
THEN RAISE_APPLICATION_ERROR(-20669,'CANNOT BORROW BOOKS FROM LONDON STORE DURING MONTH DECEMBER');
END IF;
END;
/
触发器未创建并且有错误请云给我正确的触发器??
我遇到的错误
Errors: TRIGGER BORROW_TRIGGER
Line/Col: 3/5 PLS-00049: bad bind variable 'NEW.LOC_ID'
【问题讨论】:
-
我正在为此使用 sql-server
-
我正在为此使用 oracle sql-server
-
如果您使用的是 Oracle,那么您就没有使用 SQL Server。它们是完全不同的竞争产品。
-
这也是我今天看到的第三个或第四个问题,人们试图在 SQL Server 中使用类似于 Oracle 语法的触发器;我开始怀疑这是巧合。
-
欢迎来到 Stack Overflow!您可以做几件事来改进您的帖子并提高获得答案的机会:1. 确定服务器制造商和版本(例如“Oracle 19c”或“Microsoft SQLServer 15.0. 2000.5)。2. 提供您看到的实际错误消息。
标签: sql oracle plsql triggers oracle19c