EXEC sp_addlinkedserver 'OracleSvr',
'Oracle 7.3',
'MSDAORA',
'ORCLDB'
GO
SELECT * into 本地库名..表名 --如果本地未建表
FROM OPENQUERY(OracleSvr, 'SELECT name, id FROM joe.titles')
GO
'Oracle 7.3',
'MSDAORA',
'ORCLDB'
GO
SELECT * into 本地库名..表名 --如果本地未建表
FROM OPENQUERY(OracleSvr, 'SELECT name, id FROM joe.titles')
GO
解决方案 »
- 两个服务器都是Oracle11g 怎么样A数据库一个表的数据,实时复制到B数据库中的一个表内呢
- 有关ORACLE OCI函数问题
- 关于 数据 求和
- 请问如何用sql语言只获得数据库中日期格式为"yyyy/mm/dd"的数据?谢谢
- 请大家帮忙:如何写一个orcle 存储过程,要求输入一组数据
- 求sql语句,急(两个问题)
- 求教oracle日期问题 简单,就是出不来了
- oracle 8.0.5 for nt ,装完以后NET8 EASY CONFIG不能用,怎么办?
- 在hpunix11上装oracle817,设置DISPLAY的问题。
- 包有什么作用,什么情况下要用到包
- 创建视图选择同一数据的不同时间的语句怎么写,寻求帮助
- 如何获得存储过程异常出错时的存储过程行号?
作者:中国论坛网收集 来源:http://www.51one.net 加入时间:2004-8-25
SQL Server到Oracle连接服务器的实现
作者:Jennifer
本文以SQL Server 2k为例说明SQL Server到Oracle连接服务器的具体实现过程。1.要求pc机上安装oralce客户端软件和sqlserver2000软件。2.客户端的配置tnsnames.ora文件,配置所要连接的数据库服务器(windows,unix等平台均可以)
eg:tnsnames.ora
......
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.11.90)(PORT = 1521))
)
(CONNECT_DATA =
(sid = blue)
(SERVER = DEDICATED)
)
)
......3.配置windows的ODBC数据源:
开始菜单—》设置—》管理工具—》数据源(ODBC)—》进入配置用户DSN或者系统DSN均可以:添加—》选择Microsoft ODBC for oracle—》自定义数据源名称(最好跟tns中连接串同名!)—》服务器名称(必填!填写tns文件中的连接串名称)—》完成。4.配置sqlserver2000中的连接服务器:
企业管理器—》安全性—》连接服务器—》右键新建连接服务器—》定义连接名称; 选其他数据源; 指定程序名称为:Microsoft OLE DB Provider for Oracle; 产品名称可不填; 数据源指定刚才ODBC中定义好的数据源名称; 提供程序字符串按以下格式填写:User ID=username;Password=userpasswd(或者按如下格式:UID=username;PWD=userpasswd),这里的用户名和密码对应所要连接的oracle数据库中的用户名和密码 —》 安全性标签页里:设置用此安全上下文进行,并录入oracle的数据库用户名和密码—》服务器选项标签页可默认—》确定。5.准备工作全部完成啦!在sqlserver企业管理器—》安全性—》连接服务器打开刚建好的连接服务器—》点击表,即可在右边窗口看到该oracle数据库用户拥有的的所有表名,但在这里还并不能查看表的记录,这个需要在sqserver的查询分析器中用具体sql实现!访问表时,使用格式为: [连接服务器名]..[ORACLE用户].[表名]。更详细具体的使用这里不再赘述。
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句
--确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排
然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行设置方法:
我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.
OLE DB 提供程序 'testoracle' 不包含表 '"test"."emp"'。该表可能不存在,或当前用户没有使用该表的权限。
OLE DB 错误跟踪[Non-interface error: OLE DB provider does not contain the table: ProviderName='testoracle', TableName='"test"."emp"']。
OLE DB 错误跟踪[OLE/DB Provider 'MSDAORA' ITransactionJoin::JoinTransaction returned 0x8004d01b]。
这是什么问题啊。我把执行语句放到事务中就出现上面问题了
错误:
该操作未能执行,因为 OLE DB 提供程序 'MSDAORA' 无法启动分布式事务。
OLE DB 错误跟踪[OLE/DB Provider 'MSDAORA' ITransactionJoin::JoinTransaction returned 0x8004d01b]。
帮帮忙
错误:
该操作未能执行,因为 OLE DB 提供程序 'MSDAORA' 无法启动分布式事务。
OLE DB 错误跟踪[OLE/DB Provider 'MSDAORA' ITransactionJoin::JoinTransaction returned 0x8004d01b]。
帮帮忙
'Oracle 7.3',
'MSDAORA',
'ORCLDB'
GO
BEGIN DISTRIBUTED TRANSACTION --用分布式事务试试
SELECT * into 本地库名..表名 --如果本地未建表
FROM OPENQUERY(OracleSvr, 'SELECT name, id FROM joe.titles')
commit tran
GO