欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

oracle两台服务器之间数据过滤有关问题

更新时间: 2014-01-05 02:13:47 责任编辑: Author_N1

 

Oracle两台服务器之间数据过滤问题
我们公司有两台Oracle的服务器,用途不同,但有一部分数据会用一个C#的程序从一台复制部分到另一台上。
如工单这个表,会有部分工单资料从服务器A复制到服务器B。
现在想快速找出服务器A中工单这个表,有哪些工单号没有复制到服务器B上。
先是想在服务器B上查出全部工单号,再在服务器A上用not in ('',''...)这种方式,但提示not in后面的字符串不能超过1000个。
再试not in (select '' from dual union all select '' from dual ...)这种方式,提示
ORA-04031这个错误。
因为权限问题,只能在这两个服务器的Oracle中执行select命令。
请高手指点一下,有没有什么好办法。
--参考方法--
两台数据库服务器之间的复制用c#多麻烦,为啥不用数据库自己的dblink实现,简单又安全。

如果不能修改设计,只能select,那真是没有其他比较好的办法。
--参考方法--
如果要用SQL实现,可以试试下面方法,不知道能不能行得通
服务器B通过下面方法查出全部工单号:
select to_char(wm_concat(ID))
from (
select ID,
row_number()over(order by ID) as rn
from tt
)t
group by trunc(rn/1000);

服务器A用not in('') and not in ('')

--参考方法--
先是想在服务器B上查出全部工单号,再在服务器A上用not in ('',''...)这种方式
这是多么无效率的操作~~~~~~~~
--参考方法--
用not exists试试吧骚年、

select * from A a where not exists (
select 1 from B b where b.no = a.no
)


--参考方法--
not exists 吧 效率也高点
--参考方法--
引用:
not exists 吧 效率也高点

我同意
--参考方法--
1、若有个你能控制库,建2个dblink然后查。外连、exist都行
2、若导出和建表权限,导出后到另一个库建表然后查
3、若啥啥没有,数据量少,用程序全查出存成文件,然后用svn对比
4、若啥啥没有,数据量大,用程序排序查,形成2个1000长度的数组,互相对。
--参考方法--
引用:
1、若有个你能控制库,建2个dblink然后查。外连、exist都行
2、若导出和建表权限,导出后到另一个库建表然后查
3、若啥啥没有,数据量少,用程序全查出存成文件,然后用svn对比
4、若啥啥没有,数据量大,用程序排序查,形成2个1000长度的数组,互相对。


高端大气上档次啊~
--参考方法--
随便建个库,把你要比较的数据导进来,直接左连,右连啥都给你比较出来
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:13:47
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7217/
本文WWW.DOC100.NET DOC100.NET版权所有。