为何设计三张基本上相同的表??
这种情况下可以用触发器,但是如果使用频率不是太高的话,
还是做dbms_job包来每天取数据一次,较为节省性能。
这种情况下可以用触发器,但是如果使用频率不是太高的话,
还是做dbms_job包来每天取数据一次,较为节省性能。
解决方案 »
- Windows XP下安装的Oracle11g2R,网址:https://localhost:1158/em,打不开?
- ORACLE dbf文件提示损坏,怎么恢复数据
- 在pl/sql中如何根据日期,把某列值循环相加
- orcale用存储过程导出.dmp格式数据,即存储过程实现数据备份怎么做(急!)
- ORACLE9i 建表问题
- 在procedure中动态执行drop和create sequence的语句,报权限不足,急!!!
- oracle8i怎么安装不了啊,
- 以下这段java在SQL PLUS WorkSheet中变异为什么会有这种错误?在线等。
- 想调查一下,你们的计算机内存有多少?
- 统计设备不同设备状态的时间差?
- 如何改已建例程的字符集?简体中文的字符集应选那个?
- 绝对的的难题, 没有遇到过这样问题的人, 很难想象为什么会这样!
AFTER INSERT ON TABLE0
FOR EACH ROW
DECLARE
BEGIN
insert into table1 new.a,new.b,....
insert into table2 new.a,new.b,....
END;
BEFORE INSERT ON TABLE0
FOR EACH ROW
DECLARE
BEGIN
insert into table1 VALUES( :new.a,:new.b,....);
insert into table2 VALUES(:new.a,:new.b,....);
END;
insert into table1 VALUES( :new.a,:new.b,....);
insert into table2 VALUES(:new.a,:new.b,....);还请问这两条语句的解释是什么?多谢啊。
:new.a是指第一张表的a字段的值,同理,:new.b是b字段的值,你可以根据你的具体情况修改代码。
例如:你只需要将第一张表的a、b字段的值插入table1表中
则可写成:insert into table1(a,b) values(:new.a,:new.b);
触发器的主体:
insert into tablel1(a) values(:new.a)
insert into tablel2(a) values(:new.a)提示:new 引用不允许在表层触发器中
CREATE OR REPLACE TRIGGER TABLE0_TRIG
BEFORE INSERT ON TABLE0
FOR EACH ROW
DECLARE
BEGIN
insert into table1 VALUES( :new.a,:new.b,....);
insert into table2 VALUES(:new.a,:new.b,....);
END;
把上面的语句放在sql*plus中执行没问题
FOR EACH ROW
DECLARE是什么意思?因为在OEM中没有写这两行,所以报错!