问一个2个ORACLE数据库比较更新的问题
有2个ORACLE的数据库,分别在2台机器,其中一台(A机)有原始记录,有张收费表,每月收费记录不断增加,现在B机需要先吧A机器的数据拷贝下来分析(现实情况不允许直接访问A机),客户就需要做一个实时更新的功能(可能限制一些查询条件),现在问题是有的记录需要比较更新,以A机器为准
有这几种情况,
一种是记录已存在,A机器并且没改变,B不需要变化
一种是记录已存在,A机器记录发生改变,B机器需要把相应记录更新和A机器一致
记录是新的,B机器没有
怎么实现判断,并且根据情况更新B机器的数据?
我的想法是先根据条件查询出B机器所有符合条件的记录,全部删了,然后把A机器符合条件的记录全部插进来
就省去了一个一个比较了(A机器是原始数据,并且不断更新,B机器是A的拷贝),不知道大家是怎么处理这类问题的
刚用ORACLE10g,菜鸟一个,谢谢指点
我要用编程实现的,用其他工具的方法可能不适合
AB表的表结构及相互之间的联系?
记录数不大可以用insert into ** where not exists **
记录数大就要根据具体情况分析
SQL code:
--参考下这个句子吧。。。
merge into a using b on (a.USER_NO=b.USER_NO)
when matched then update set a.NAME=b.NAME
when not matched then insert values (b.USER_NO,b.NAME)
数据库结构完全一致,只是在2台机器上,B机器的数据是A机器的拷贝
个人觉得,在A机器的收费表上做个触发器,当A机器收费表发生变化时,通过触发器的一个dblink直接连接到B机器上就可以了。即:在触发
相关问答:
各位oracle高手,请教一下为什么oracle 10g在安装到百分之八十五的时候就报错不能继续安装?
内存多大? 重新下个数据库安装试试..
引用
各位oracle高手,请教一下为什么oracle 10g在安装到百分之八十五的时 ......
在执行包的时候引用oracle spatial空间函数出错,出错情况如下
Errors in file
/user/oracle/app/oracle/admin/grid/udump/grid1_ora_143768.trc: ORA-29902:
error in executing ODCIIndexStart() routine ORA-0 ......
我在开发的这个应用并发性比较高,oracle更新数据时候如何处理并发处理呢?各位大侠发表好的观点啊,在线等待!
oracle数据更新时,会自动默认行锁定,楼主不要操心,Oracle对并行处理已经很成熟了
引用
oracle ......
select sum(a.t)from ta a group by ta.a,这条语句将表ta中的数据按照a字段分组汇总t字段。
结果比如:
3 30
4 50
我想得到这个结果:
1 0
2 0
3 30
4 50
5 0
这个结果,请问sql语句怎么写?多谢
nobody ......
eclipse 3.3启动web工程,要连接oracle9i数据库报
严重: Cannot create PoolableConnectionFactory (Listener refused the connection with the following error:
ORA-12518, TNS:listener could not hand off cli ......