2017-04-11 25 views
0

我需要從SQL Server數據庫中的表中選擇Oracle數據庫中的表數據。因此我按照http://www.dba-oracle.com/t_database_link_sql_server_oracle.htm中的描述創建了一個到這個Oracle數據庫的數據庫鏈接。ORA-00942:從異構服務中的表中選擇某些內容時,表或視圖不存在

數據庫鏈接是否正常工作,因爲我可以顯示用下面的命令該數據庫鏈接的所有表:

select * 
from [email protected]_link 

比如我拿到表「ADR」作爲表名和「DBO」作爲所有者。

所以,如果我嘗試通過

select * from [email protected]_link 

或通過選擇一切從該表中

select * from "dbo"."adr"@mssql_link 

select * from [email protected]_link 

我總是得到一個Oracle異常:

ORA-00942:表或視圖不存在
[Microsoft] [ODBC SQL Server驅動程序] [SQL Server]無效的對象名稱'DBO.ADR'。 {42S02,NativeErr = 208} [Microsoft] [ODBC SQL Server驅動程序] [SQL Server]聲明無法準備。 {42000,NativeErr = 8180}
ORA-02063:從MSSQL_LINK

前述2線I創建通過創建公共數據庫鏈接數據庫鏈接mssql_link連接到 「[DBUSER]」 鑑定 「[PASSWORD]」 使用'mssql01';

有沒有人知道那裏發生了什麼?

+0

我不知道SQLServer的,但如果這事發生到Oracle數據庫,您的用戶不必在問題表中選擇訪問。您的鏈接已設置爲以特定用戶身份進行連接。該用戶是否有適當的權限訪問該表。 – unleashed

回答

0

嘗試OPENQUERY函數,就像這樣:

select * from openquery(mssql_link, 'Select * from adr') 
+0

不幸的是,當執行該命令時,我得到了ORA-00933 SQL命令沒有正確結束的異常。 –

+0

引言中的內容正是您在Oracle中所擁有的內容。 – Chuck

相關問題