有人可以帮我在oracle表达式视图x上编写一个触发器,它通过select查询从另一个表y填充数据。
逻辑: 在表y中插入新行后;当表y中插入的行上的新列的值为'xyz'时,我想根据插入表y的新行上的条件'xyz'更新表达式视图x的某些列。
有人可以帮忙吗?
钱德拉
答案 0 :(得分:0)
这就是我理解这个问题的方法(不过,更多是通过阅读评论而不是一个问题,其表达方式让我感到困惑)。
这将是一个基于触发器的解决方案;它会检查输入A列的值是否大于100(表示"如果条件");如果是这样,它会修改C和D列。如果没有,它什么都不做。
SQL> create table test (a number, b number, c number, d number);
Table created.
SQL> create or replace trigger trg_bi_test
2 before insert on test
3 for each row
4 when (new.a > 100)
5 begin
6 :new.c := 3;
7 :new.d := 4;
8 end;
9 /
Trigger created.
SQL> insert into test (a) values (50);
1 row created.
SQL> insert into test (a) values (200);
1 row created.
SQL> select * from test;
A B C D
---------- ---------- ---------- ----------
50
200 3 4
SQL>