从这篇帖子:http://topic.csdn.net/t/20050510/17/3995883.html 了解到可以通过 OPENROWSET 传递参数??
如果我要通过SQL SERVER 使用OPENROWSET 访问Oracle 如何使用了??
最好介绍下 OPENROWSET(''MSDASQL'',''DRIVER={SQL Server};SERVER=SAMSUNG;UID=sa;PWD=;Database=EntranceGuard'',''EXEC
这些参数的含义??declare @dt1 varchar(10),@dt2 varchar(10)
select @dt1='2003-1-1',@dt2='2006-1-1'
print('
Select * from OPENROWSET(''MSDASQL'',''DRIVER={SQL Server};SERVER=SAMSUNG;UID=sa;PWD=;Database=EntranceGuard'',''EXEC dbo.upGetReceiveTicket @dtBegin = '''+@dt1+''',@dtEnd = '''+@dt2+''',@bitEnsure = 1 '') AS a')
如果我要通过SQL SERVER 使用OPENROWSET 访问Oracle 如何使用了??
最好介绍下 OPENROWSET(''MSDASQL'',''DRIVER={SQL Server};SERVER=SAMSUNG;UID=sa;PWD=;Database=EntranceGuard'',''EXEC
这些参数的含义??declare @dt1 varchar(10),@dt2 varchar(10)
select @dt1='2003-1-1',@dt2='2006-1-1'
print('
Select * from OPENROWSET(''MSDASQL'',''DRIVER={SQL Server};SERVER=SAMSUNG;UID=sa;PWD=;Database=EntranceGuard'',''EXEC dbo.upGetReceiveTicket @dtBegin = '''+@dt1+''',@dtEnd = '''+@dt2+''',@bitEnsure = 1 '') AS a')
要求:本地安装Oracle客户端
select * from opendatasource('MSDAORA', 'Data Source=XST4;User ID=manager;Password=sjpsjsjs')..MISD.PBCATCOL
其中,MSDAORA是OLEDB FOR Oracle的驱动,注意:用户名和表名一定要大小,服务器和用户名之间是两个点;
例如:
select top 10 * from opendatasource('MSDAORA', 'Data Source=HZTEST;User ID=osstest;Password=a1234')..OSSTEST.SUBSCRIBER本地Oracle客户端配置文件中内容如下:
HZTEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 132.149.7.19)(PORT = 1521))
)
(CONNECT_DATA =
(SID = test)
)
)2. 使用MS SQL的openrowset函数
select A.* from openrowset('MSDAORA','XST4';'manager';'sjpsjsjs', 'MISD.PBCATCOL') as A
order by A.ID
使用这种方式一定要用别名才行3.使用ODBC方式
select A.* from openrowset('MSDAORA','XST4_ODBC';'manager';'sjpsjsjs', 'MISD.PBCATCOL') as A order by A.ID
XST4_ODBC是ODBC数据源4.使用链接服务器方式
EXEC SP_ADDLINKEDSERVER
@server='mylinkedserver', --链接服务器名称
@srvproduct='Oracle', --固定
@provider='MSDAORA', --固定
@datasrc='XST4' --Oracle本地服务名
该文章转载自德仔工作室:http://www.dezai.cn/article_show.asp?ArticleID=17285
1.通过行集函数opendatasource
要求:本地安装Oracle客户端
select * from opendatasource('MSDAORA', 'Data Source=XST4;User ID=manager;Password=sjpsjsjs')..MISD.PBCATCOL
其中,MSDAORA是OLEDB FOR Oracle的驱动,2.使用链接服务器方式
EXEC SP_ADDLINKEDSERVER
@server='mylinkedserver', --链接服务器名称
@srvproduct='Oracle', --固定
@provider='MSDAORA', --固定
@datasrc='XST4' --Oracle本地服务名
包含访问 OLE DB 数据源中的远程数据所需的全部连接信息。当访问链接服务器中的表时,这种方法是一种替代方法,并且是一种使用 OLE DB 连接并访问远程数据的一次性的、特殊的方法。可以在查询的 FROM 子句中像引用表名那样引用 OPENROWSET 函数。依据 OLE DB 提供程序的能力,还可以将 OPENROWSET 函数引用为 INSERT、UPDATE 或 DELETE 语句的目标表。尽管查询可能返回多个结果集,然而 OPENROWSET 只返回第一个。语法
OPENROWSET ( 'provider_name'
, { 'datasource' ; 'user_id' ; 'password'
| 'provider_string' }
, { [ catalog.] [ schema.] object
| 'query' }
) 参数
'provider_name'字符串,它代表在注册表中指定的 OLE DB 提供程序的友好名。provider_name 没有默认值。'datasource'字符串常量,它对应着某个特定的 OLE DB 数据源。datasource 是将被传递到提供程序 IDBProperties 接口以初始化提供程序的 DBPROP_INIT_DATASOURCE 属性。通常,这个字符串包含数据库文件的名称、数据库服务器的名称,或者提供程序能理解的用于查找数据库的名称。 'user_id'字符串常量,它是传递到指定 OLE DB 提供程序的用户名。user_id 为连接指定安全上下文,并将它作为 DBPROP_AUTH_USERID 属性传递进来以初始化提供程序。'password'字符串常量,它是将被传递到 OLE DB 提供程序的用户密码。当初始化提供程序时,将 password 作为 DBPROP_AUTH_PASSWORD 属性传递进来。'provider_string'提供程序特定的连接字符串,将它作为 DBPROP_INIT_PROVIDERSTRING 属性传递进来以初始化 OLE DB 提供程序。通常 provider_string 封装初始化提供程序所需的所有连接信息。catalog目录或数据库的名称,其中驻留着指定的对象。schema架构的名称或指定对象的对象所有者名称。object对象名称,它唯一地标识出将要操作的对象。'query'是字符串常量,发送到提供程序并由提供程序执行。Microsoft® SQL Server™ 不处理该查询,但处理由提供程序返回的查询结果(直接传递查询)。对于有些提供程序,它们并没有通过表名而是通过命令语言表现自己的表格格式数据,那么将直接传递查询用于这些提供程序是非常有用的。只要查询提供程序支持 OLE DB Command 对象及其强制接口,那么在远程服务器上就支持直接传递查询。有关更多信息,请参见 SQL Server OLE DB 程序员参考。 注释