满分挑战:长时间的导数据过程中,触发器如何工作? 如果只在10:30做commit的话1. 10:002. 不能DIY. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 commit操作是在10:30导入结束后执行哪位兄弟有这方面的经验,不妨写一写,谢谢! 请教: jlandzpa(ORA-00600) 兄难道做select 的时候会把table1锁住,或使trigger失效?因为他是往table2里写数据,对table1只是select,应该不会影响table1的使用,以及trigger的触发吧? 写错了吧?触发器监听的是table2?table1只是被select数据,哪里有insert?如果不commit,那么表table2在10:00 - 10:30期间其实并没有insert事件发生,因此trigger不起作用。 TO wpltt(NullpointException):没有写错,TABLE1表中会不断的有数据插入或者更新,在导数据的过程中,TABLE1也会有数据变化。TRIGGER监听的是TABLE1。难就难在这里! btw:如果你的TABLE1中这段时间有commit并且回滚段不是足够大的话将出现 ora-01555错误 对于1,我刚才做了个试验,先insert into table2 select * from table1 然后在另一个会话中对table1进行编辑,中间提交了三次。最后,select * from table2,结果是table1的旧数据 。 1、完全正确,虽然在插入TABLE2中数据时用了很长时间,但对于一个SESSION的一次操作,ORACLE保持数据读的一致性,所以即便在导数的过程中出现的数据变化,则操作的结果将仍然是10:00时的数据。 2、对于触发器就不同了,因为你的触发器是键在TABLE1上的,所以触发器的工作与导数是完全分开了,只要对TABLE1有操作,触发器就会触发,而触发器的作用结果也将与启动触发器的事务一块提交或回退。 另外,我认为不会出现biti_rainy(biti_rainy)提到的 ora-01555错误错误,即便出现也不是对TABLE1操作COMMIT的原因,因为操作TABLE1和INTO TABLE2是两个不同的事务,两者是没有关系的。而且如果TABLE1中数据量很大的话,SELECT .. INTO ..可以单独指定一个大的回滚段。 OracleServerSID 服务启不来 oracle增删改共通存储过程的问题。 请问为什么这个查询会没有结果呢? 如何用sql 查看当前系统cpu使用率 以及占系统CPU最高的sql 求一sql 系统崩溃,请提供帮助! 无效数字,怎么办?? 哪儿有oracle9i下载啊 散分问题:现在的机器上已有一个oracle 8i服务器了,我现在需要登录另一台机器上的oracle 8i服务器,我该怎么操作呢?谢谢,来者有分!!!! 怎样让system以sysdba/sysoper登陆? 请问哪里有oledb的驱动? Oracle的登录问题!
难道做select 的时候会把table1锁住,或使trigger失效?
因为他是往table2里写数据,对table1只是select,应该不会影响table1的使用,以及trigger的触发吧?
将出现 ora-01555错误
先
insert into table2 select * from table1 然后在另一个会话中对table1进行编辑,中间提交了三次。
最后,select * from table2,结果是table1的旧数据 。
2、对于触发器就不同了,因为你的触发器是键在TABLE1上的,所以触发器的工作与导数是完全分开了,只要对TABLE1有操作,触发器就会触发,而触发器的作用结果也将与启动触发器的事务一块提交或回退。
另外,我认为不会出现biti_rainy(biti_rainy)提到的 ora-01555错误错误,即便出现也不是对TABLE1操作COMMIT的原因,因为操作TABLE1和INTO TABLE2是两个不同的事务,两者是没有关系的。而且如果TABLE1中数据量很大的话,SELECT .. INTO ..可以单独指定一个大的回滚段。