也许这很容易,但我没有取得成功。表格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;/
答案 0 :(得分:0)
您可以使用伪记录:new,:old,以使其正常工作:
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
where bp.product_no = :new.product_no;
insert into B (product) values(varProduct) ;
exception
when others then NULL;
END;
when others then NULL;
这条未被占用的行,你无法隐藏任何例外情况。