【发布时间】:2014-06-24 21:20:29
【问题描述】:
也许这很容易,但我没有成功。表B 包含两个字段:product_no NUMBER 和product VARCHAR2。触发器应该做的是从BP-table 插入相应的产品描述,其中还有product_no 和product 字段。
例如。您在B.product_no 中输入20,那么它应该会自动从BP-Table 输入正确的产品。 Oracle 版本是 11g。
CREATE OR REPLACE TRIGGER A.trigger_on_B
AFTER INSERT OR UPDATE
ON A.B FOR EACH ROW
DECLARE
varProduct varchar(20);
BEGIN
SELECT bp.report_info
into varProduct
from bp,
B
where bp.product_no = B.product_no;
insert into B (product) values(varProduct) ;
exception
when others then NULL;
END;/
【问题讨论】:
-
问题出在哪里?
-
它不起作用。错误消息:错误第 51 行,第 12 列,第 51 行,第 51 行,第 18 行,找到 'varchar',期望:。 -or- ( -or- RETURN RETURNING -or- LOG -or- ;
-
为什么?我必须定义变量吗?当我继续使用此触发器时,我收到另一个错误,即触发器“无效且重新验证失败”