【问题标题】:Trying to import large data from Oracle using a Linked Server on MS SQL 2005尝试使用 MS SQL 2005 上的链接服务器从 Oracle 导入大数据
【发布时间】:2014-11-17 15:20:01
【问题描述】:

我正在尝试使用 MS SQL 2005 上的链接服务器从 Oracle 数据库中导入大量数据。 这是 OPENQUERY 命令。

SELECT * from OPENQUERY(HRDEV9, 
        'SELECT EMPLOYEE_ID
          ,EMPLOYEE_NAME
          ,TO_CHAR(BIRTHDATE,''yyyy-mm-dd'') AS BIRTHDATE
        FROM SYSADM.PS_EMPLOYEES')

为了简化示例,我没有包含所有列,我有大约 180 列和 75000 行要导入。

这是我在执行查询时遇到的错误:

返回链接服务器“HRDEV9”的 OLE DB 提供程序“OraOLEDB.Oracle” 消息“没有足够的存储空间来完成此操作。”。

消息 7399,级别 16,状态 1,第 1 行 OLE DB 提供程序 链接服务器“HRDEV9”的“OraOLEDB.Oracle”报告错误。这 提供程序内存不足。

消息 7372,第 16 级,状态 4,第 1 行不能 从 OLE DB 提供程序“OraOLEDB.Oracle”获取链接的属性 服务器“HRDEV9”。

我已启用自动增长,并为数据和日志文件设置了不受限制的文件增长。

我尝试使用 Oracle ROWNUM 仅导入 10 行,但仍然遇到相同的错误。

感谢您的宝贵时间。

【问题讨论】:

  • 1.您可以从另一个 OLEDB 加载吗? (甚至SQL Server) 2. 可以通过这个驱动查询ORACLE数据库吗?
  • @vav 1. 我要导入的数据位于 Oracle 数据库中,我连接到 Oracle 的唯一方法是使用 OraOLEDB.Oracle 提供程序通过链接服务器。 2. 是的,我可以

标签: sql sql-server oracle sql-server-2005 linked-server


【解决方案1】:

尝试将数据从 Oracle 导入 CSV,然后将其加载到 MS SQL。 很抱歉将您指向我的博客,但是here is how to get data fast from Oracle.

【讨论】:

  • 我的查询必须在一夜之间每天批量运行,我不想手动导入。
【解决方案2】:

我发布这个是为了帮助其他人解决同样的问题。

显然这是 Microsoft 确认的错误。如果链接表包含类型为 NUMERIC 的列,则会出现错误消息。 解决方法是重新创建链接服务器以使用 Microsoft OLE DB Provider for ODBC (MSDASQL)。

您可以通过以下两种方式解决该行为:

使用 Microsoft 提供的 ORACLE ODBC 驱动程序:

EXEC sp_addlinkedserver @server = 'ORACLEODBC', @srvproduct = 'MSDASQL', @provider = 'MSDASQL',
 @provstr = 'DRIVER={Microsoft ODBC for Oracle};SERVER=MyOracleServer;UID=USERNAME;PWD=Password;'
go

sp_addlinkedsrvlogin 'ORACLEODBC', false, NULL, 'USERNAME', 'Password'

-或-

使用 ORACLE 提供的 ORACLE ODBC 驱动程序:

EXEC sp_addlinkedserver @server = 'ORACLEODBC', @srvproduct = 'MSDASQL', @provider = 'MSDASQL',
 @provstr = 'DRIVER={ORACLE ODBC DRIVER};SERVER=MyOracleServer;UID=USERNAME;PWD=Password;DBQ=ORACLE805;' 
go

sp_addlinkedsrvlogin 'ORACLEODBC', false, NULL, 'USERNAME', 'Password'

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 2010-09-23
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    相关资源
    最近更新 更多