【问题标题】:How do I execute "use dbname" over Oracle dblink to Sybase?如何通过 Oracle dblink 对 Sybase 执行“使用 dbname”?
【发布时间】:2017-12-10 21:26:41
【问题描述】:

如何从 Oracle 访问 Sybase 中我的用户模式中的表?

isql我可以做

use mydb
go

如何使用 dblink NITSYB5 从 Oracle 的 mydb 表中进行选择?

这不起作用:

select count(*) from  "mydb"."lon_client_confirm_exec"@NITSYB5;

错误:

ORA-00942: table or view does not exist
[Oracle][ODBC Sybase Wire Protocol driver][SQL Server]"mydb"."lon_client_confirm_exec" not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output).
 {42S02,NativeErr = 208}
ORA-02063: preceding 3 lines from NITSYB5
00942. 00000 -  "table or view does not exist"
*Cause:    
*Action:
Error at Line: 3 Column: 30

【问题讨论】:

    标签: oracle sybase dblink


    【解决方案1】:

    服务器 1 和服务器 2 打开 SSH server2 telnet server 1 主机,就可以了 甲骨文

    1) cd $ORACLE_HOME/bin
    2) TNSPING database1 name 
    

    没问题

    create public database link 
      LINK_NAME
    connect to 
      DB1USERNAME
    identified by 
      111 
    using 'DB1NAME';
    

    select * from dual@LINK_NAME, result x, 完成。

    【讨论】:

      【解决方案2】:

      注意:我不与 Oracle 合作,因此对 Oracle 的 dblink 一无所知,所以 fwiw ...

      在 Sybase ASE 中,完全限定的表名格式为:<dbname>.<owner>.<table>

      如果您省略了<owner>,那么优化器将首先查找运行查询的用户拥有的表,然后查找dbo 拥有的表。

      在您的示例中,您似乎遗漏了<owner>。如果该表归您的用户或dbo 所有,那么我建议您尝试添加一个额外的句点,例如:

      select count(*) from mydb..lon_client_confirm_exec@NITSYB5;
      

      注意:根据 Oracle 的 dblink 的需要添加引号。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-07
        • 1970-01-01
        相关资源
        最近更新 更多