mssql 中not in报错

solidvacuum 2013-09-29 11:38:48
在mssql 2005中有个试图a,查询
select * from a where a.id not in (select id from openquery(link1,'select id from b')) 报错
链接服务器"link1"的 OLE DB 访问接口 "OraOLEDB.Oracle" 返回了消息 "ORA-01403: 未找到数据"。
消息 7346,级别 16,状态 2,第 1 行
无法从链接服务器 "link1" 的 OLE DB 访问接口 "OraOLEDB.Oracle" 获取行的数据。

而我直接查试图,或者openquery的时候都是可以查的,并且openquery中的id没有null的。。。

请问各位大神,遇到过类似的问题不
...全文
241 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cloud_Hero 2013-10-01
  • 打赏
  • 举报
回复
openquery在SQL Server 2005之后已经不推荐了。官方推荐直接linked server,再用视图。
發糞塗牆 2013-09-30
  • 打赏
  • 举报
回复
不行是指什么?单纯这个执行能不能通过?
solidvacuum 2013-09-30
  • 打赏
  • 举报
回复
引用 2 楼 DBA_Huangzj 的回复:
select * from (select id from openquery(link1,'select id from b')试试
这个模式还是不行,我把openquery的查询做成视图,再not in也是同样的报错。
solidvacuum 2013-09-30
  • 打赏
  • 举报
回复
引用 1 楼 js_szy 的回复:
那就先放到临时表,再用not in试试
放到临时表没问题的,呵呵
Andy__Huang 2013-09-29
  • 打赏
  • 举报
回复
先测试链接oracle服务器是否现在可以连接通,现在的提示是连接不上
發糞塗牆 2013-09-29
  • 打赏
  • 举报
回复
select * from (select id from openquery(link1,'select id from b')试试
华夏小卒 2013-09-29
  • 打赏
  • 举报
回复
那就先放到临时表,再用not in试试
solidvacuum 2013-09-29
  • 打赏
  • 举报
回复
引用 3 楼 hdhai9451 的回复:
先测试链接oracle服务器是否现在可以连接通,现在的提示是连接不上
我说了,openquery是可以查询到的。

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧