******** 急: 在oracle中可以对视图建立触发器吗 我的环境是oracle10g,想将几个基础表联立建一个视图,当视图中有新写入的数据时,就执行触发器,将新写入的数据导入到另一个用户的表中,可行吗如果不行,用什么方法可以达到这样的效果,谢谢大家了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的代码如下:create or replace trigger TRI_SEND after insert on V_SEND for each rowbegin INSERT INTO OUTBOX ( EXPRESSLEVEL, SENDER, RECEIVERMOBILENO, MSG, SENDTIME, NEEDREPORT, ISCHINESE) VALUES ( 1 , 'test' , :new.RECEIVERCODE, :new CONTENT, :new SENDTIME, 1, 1 );end TRI_SEND;但编译报错:无法在视图上创建此类型的触发器why 回复icefirelxb:为什么不在相关表上建呢?主要是我有两个基础表,两个表之间是一对多的关系。需要通过触发器来写入数据的表,是对这两个基础表内容的合并。 视图上建的触发器是instead触发器。 after 改成 instead of 噢,我的书上是这么写的:/*在Oracle系统里,如果一个视图是由一个基表的所有非空列(Not Null)组成,那么该视图是可以进行INSERT、DELETE和UPDATE操作的。但是如果一个视图由多个基表进行连接(Join)而成,则该视图不允许进行INSERT、DELETE和UPDATE操作的。而Oracle提供的替代触发器(Instead of Trigger)就是用于对连接视图进行Insert、Delete、Update操作的触发器。也就是说,通过编写替代触发器,可以对连接视图进行DML操作,从而实现对各基表数据的修改。*/不打字了,思路就是这样子了。qfkx.com友情技术支持。 用INSERD OF 触发器CREATE [OR REPLACE] TRIGGTER XXX_VIEWINSEAD OF XXX[TABLENAME]FOR EACH ROWBEGIN[你要执行的SQL语句,既然你是2个基表的话,你就要对2个基表分别操作]END 对已有记录添加编号(无分,多谢!) 急!!!求一个sql语句。这剩这么多分了…… 机器更名后,oracle9i无法启动 50分供上,恳请各位大哥,进来坐坐阿!!!!!!!!!!!!!!!!!! 关于RMAN的问题 有几万条记录,我只想select100条记录,应该用什么条件限制? 存储过程的参数问题 各位大虾帮忙:oracle日志误删---- 达人帮忙,ORA4030的错误应该怎样调整程序或ORACLE? 有一定格式的Word文档中的数据可以导入到数据库吗? oracle 数据库恢复问题 pl/sql过程往嵌套表插入数据问题
create or replace trigger TRI_SEND
after insert on V_SEND
for each row
begin
INSERT INTO OUTBOX (
EXPRESSLEVEL,
SENDER,
RECEIVERMOBILENO,
MSG,
SENDTIME,
NEEDREPORT,
ISCHINESE)
VALUES (
1 ,
'test' ,
:new.RECEIVERCODE,
:new CONTENT,
:new SENDTIME,
1,
1
);
end TRI_SEND;但编译报错:无法在视图上创建此类型的触发器why
需要通过触发器来写入数据的表,是对这两个基础表内容的合并。
在Oracle系统里,如果一个视图是由一个基表的所有非空列(Not Null)组成,那么该视图是可以进行INSERT、DELETE和UPDATE操作的。但是如果一个视图由多个基表进行连接(Join)而成,则该视图不允许进行INSERT、DELETE和UPDATE操作的。而Oracle提供的替代触发器(Instead of Trigger)就是用于对连接视图进行Insert、Delete、Update操作的触发器。也就是说,通过编写替代触发器,可以对连接视图进行DML操作,从而实现对各基表数据的修改。
*/不打字了,思路就是这样子了。qfkx.com友情技术支持。
CREATE [OR REPLACE] TRIGGTER XXX_VIEW
INSEAD OF XXX[TABLENAME]
FOR EACH ROW
BEGIN
[你要执行的SQL语句,既然你是2个基表的话,你就要对2个基表分别操作]
END