2012-08-16 19 views
0

我試圖在單個查詢中使用兩個數據庫鏈接,一個用於獲取數據,另一個用於插入數據。但是我無法在單個查詢中使用它們,即使它們在單獨的查詢中使用時都能很好地工作。我不能在單個查詢中使用單獨的數據庫鏈接,爲什麼不呢?我試圖運行的查詢類似於無法在單個查詢中使用兩個數據庫鏈接

INSERT INTO [email protected] SELECT * FROM [email protected]; 
+2

你得到的錯誤是什麼? – 2012-08-16 08:41:40

+4

這看起來非常低效。您的聲明意味着使用3個不同的數據庫來插入一個數據庫。我想知道爲什麼插入語句不是直接從數據庫@ dblink1運行。 相反,它看起來像你正在使用中間數據庫來運行其他兩個之間的查詢? – OraNob 2012-08-16 09:45:31

+0

@DanielHilgarth錯誤是ORA-02019:未找到遠程數據庫的連接描述。 – Nitish 2012-08-16 13:08:27

回答

0

這看起來像是10g中的一個錯誤。可能錯誤6320621,ORA-2019發生時,SQL連接多個網站VIA DBLINK';或5713736,'使用DB-LINK ORA-02019'插入帶有選擇選項失敗的語句'。您可能需要向Oracle提出SR以根據您的具體情況進行調查。

作爲一種替代方法,您可以考慮從一個數據庫中卸載數據,然後將數據加載到另一個數據庫中。例如,您可以使用expdpimpdp以及tablescontent=data_only選項來分兩個階段進行傳輸。當然,您需要空間將轉儲文件存儲在中間數據庫服務器上,而且它不太方便。您可能會這樣做,從而形成源數據庫服務器或目標數據庫服務器,從而避免中間數據庫服務器,但尚不清楚您是否有任何直接訪問權限。

+0

當我運行expdb它產生了錯誤 UDE-00008:操作生成的ORACLE錯誤12560 ORA-12560:TNS:協議適配器錯誤 – Nitish 2012-08-22 08:54:51

+0

@Nitish - 這可能是一個新問題,但可能是你如何連接的東西。如果您的數據庫鏈接正在使用TNS別名,那麼您應該可以執行'expdp user/password @ alias ...';如果沒有,你可以使用EZConnect,像'expdp user/password @ // server:port/service_name ...'。如果這不是微不足道的,那麼你需要問一個新的問題,可能在[dba.se]上。我假設你已經熟悉[expdp](http://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_export.htm)。 – 2012-08-22 09:37:10

相關問題