首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将文件从Unix导入到MS SQL Server

将文件从Unix导入到MS SQL Server
EN

Stack Overflow用户
提问于 2019-01-11 03:33:42
回答 1查看 208关注 0票数 1

我们需要将大量数据(大约1 GB)从UNIX服务器上的Oracle数据库复制到MS SQL Server2008Windows中的表(在r2服务器上运行)。此任务将定期重复,而不仅仅是一次性作业。

我们有将数据导出到文本文件的代码,但这些文件是在UNIX服务器上生成的。

我们有导入文本文件的代码(批量插入),但这似乎只有在文件位于Windows服务器上时才有效(批量插入需要UNC)。

物理复制文件会占用大量资源。写一次再读一次要好得多。

做这件事最好的方法是什么?Oracle有没有办法将文件写入Windows网络位置?有没有办法让MS SQL Server2008UNIX从r2服务器上读取文本文件?有没有完全不同的方法呢?

EN

回答 1

Stack Overflow用户

发布于 2019-01-11 15:06:10

甲骨文有没有办法把文件写到

网络上?有没有办法让MS SQL Server2008UNIX从r2服务器上读取文本文件?

是的,它被称为Samba

有没有完全不同的方法?

Create a linked server。这将允许SQL Server查询Oracle服务器并获取数据,而无需将其保存到文件中。

若要创建链接服务器,必须在SQL server上安装Oracle Data Access Components。然后,您必须将Oracle provider配置为在SQL Server进程内部运行并接受参数:

代码语言:javascript
复制
exec master.dbo.sp_MSset_oledb_prop 'ORAOLEDB.Oracle', N'AllowInProcess', 1 
exec master.dbo.sp_MSset_oledb_prop 'ORAOLEDB.Oracle', N'DynamicParameters', 1 

然后创建链接服务器定义:

代码语言:javascript
复制
exec sp_addlinkedserver N'MyOracle', 'Oracle', 'ORAOLEDB.Oracle', N'//1.2.3.4/xe', N'FetchSize=2000', ''
exec master.dbo.sp_serveroption @server=N'MyOracle', @optname=N'rpc out', @optvalue=N'true'
exec sp_addlinkedsrvlogin @rmtsrvname='MyOracle', @useself=N'FALSE', @rmtuser=N'system', @rmtpassword='xxxxxx' 

如果一切配置正确,您可以直接查询Oracle服务器:

代码语言:javascript
复制
exec ('select 1 a from dual') at MyOracle
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54135773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档