为啥mssql的OPENQUERY取oracle某表时只返回了一行数据,而在pl/sql中可以查到表中有两行数据,求解答?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥mssql的OPENQUERY取oracle某表时只返回了一行数据,而在pl/sql中可以查到表中有两行数据,求解答?相关的知识,希望对你有一定的参考价值。
SQLSERVER语句:SELECT * FROM OPENQUERY(cbaosong,N'select * from roles where role_id in(''1012'',''1013'');')
执行结果如下图
而在pl/sql中可以查询到两条,语句:
select * from roles where role_id in ('1012','1013');
执行结果如下图
如何才能在mssql中显示出全部查询条目?
不是的,其他的表就可以,如:
SELECT * FROM OPENQUERY(cbaosong,N'select * from ins_info_def;')
执行结果:
http://technet.microsoft.com/zh-cn/library/ms188427.aspx 具体不太清楚
MSSQL如何访问ORACLE里的表
环境:
MSSQL:2008
ORACLE DB:10.2.0.1
之前一直没有接触MSSQL,最近因需要MSSQL访问ORACLE里的表,下面是MSSQL连接ORACLE的配置过程.
1.在MSSQL的机器上安装ORACLE客户端,同时配置连接到ORALCE的TNS,这里我的配置如下:
ORACL_10GA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.101)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = oracl) ) )
配置好后,可以使用tnsping检查是否连接成功.
C:\Documents and Settings\Administrator>tnsping oracl_10ga
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 14-10月-2012 00:
Copyright (c) 1997, 2005, Oracle. All rights reserved.
已使用的参数文件: D:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名 Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = CE_NAME = oracl))) OK (10 毫秒)
2.进入Micosoft SQL Server Management Studio选择连接服务器
3.点击 新建连接服务器
连接服务器:link_oracle //这个名字可以随意
访问接口选择:Microsoft OLE DB Provider for Oracle
产品名称:oracle
数据源:oracl_10ga //这里是配置的TNS
4.安全性选项的配置
远程连接:hxl_test //这里是访问oracle数据库的用户
使用密码:数据库的密码
5.访问oracle数据库下的表
SELECT * FROM OPENQUERY(LINK_ORACLE,‘SELECT * FROM TB_HXL_TEST‘)
-- The End --
http://blog.chinaunix.net/uid-77311-id-3372495.html
以上是关于为啥mssql的OPENQUERY取oracle某表时只返回了一行数据,而在pl/sql中可以查到表中有两行数据,求解答?的主要内容,如果未能解决你的问题,请参考以下文章