【问题标题】:Using Oracle Heterogenous services to access sql server database table via ODBC使用 Oracle Heterogenous services 通过 ODBC 访问 sql server 数据库表
【发布时间】:2011-08-10 14:16:00
【问题描述】:

我已经创建了一个从 oracle 到 sql(实现的异构服务)的 dblink 'POC_HS',并且我能够成功地从 DSN(用于 sql server)连接到的默认数据库中提取数据。

因此,这个“select * from Test@POC_HS”在 Oracle 数据库上运行良好,因为“Test”表位于默认数据库(系统 DSN 连接到该数据库)中。

但是当我执行 'select * Abc.Test@POC_HS' 其中测试表驻留在不是默认数据库的 'ABC' 数据库中时,会引发如下错误:

ORA-00942: 表或视图不存在 [使用 ODBC 的通用连接][Microsoft][ODBC SQL Server Driver][SQL Server]无效的对象名称“Abc.Test”。[Microsoft][ODBC SQL Server Driver][SQL Server]无法准备语句。 (SQL 状态:S0002;SQL 代码:208)

dblink 用户和系统 DSN 帐户有权访问“Abc”数据库。

想法?

【问题讨论】:

    标签: sql-server oracle service heterogeneous


    【解决方案1】:

    对象的完整路径是Database.Schema.Object,所以我猜你应该这样写:

    select * 
    from Abc.dbo.Test@POC_HS
    

    当然,用实际的架构名称替换 dbo

    【讨论】:

    • 我尝试执行“select * from Abc.dbo.Test@POC_HS”,但 oracle 抛出此异常“ORA-00933:SQL 命令未正确结束”
    【解决方案2】:

    在这里回答 - http://forums.oracle.com/forums/message.jspa?messageID=9794581

    ODBC Sql Server 驱动程序不允许跨数据库查询,每次要查询不同的数据库时都必须更改 odbc 默认数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 1970-01-01
      • 1970-01-01
      • 2018-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多