如何从Oracle访问Sybase用户模式中的表?
在isql
我能做到
use mydb
go
如何使用dblink mydb
从<{1}}中选择NITSYB5
表?
这不起作用:
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
答案 0 :(得分:0)
注意:我不能与Oracle合作,因此对Oracle的dblink一无所知,所以fwiw ......
在Sybase ASE中,完全限定的表名格式为:<dbname>.<owner>.<table>
如果省略<owner>
,则优化器将首先查找运行查询的用户拥有的表,然后查找dbo
拥有的表。
在您的示例中,您似乎忽略了<owner>
。如果该表由您的用户或dbo
拥有,那么我建议您尝试添加额外的期限,例如:
select count(*) from mydb..lon_client_confirm_exec@NITSYB5;
注意:如果需要,可以在Oracle的dblink中添加引号。
答案 1 :(得分:0)
服务器1和服务器2 打开SSH server2 telnet服务器1主机,就可以了 su oracle
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,
完成。