2017-02-09 46 views
0

我有一臺帶有Oracle DB的主服務器和10臺具有相同數據庫結構的MSSQL服務器。我創建了一個名爲MSSQL_A,MSSQL_B,MSSQL_C..etc所有服務器數據庫鏈接,可通過MSSQL的服務器上執行Oracle:如何從多個MSSQL中選擇數據並將其存儲到ORACLE的一個表中?

SELECT * FROM [email protected]_A 
SELECT * FROM [email protected]_B 
... 

我具有相同結構創建主/ Oracle服務器上的新表MY_CENTRAL_TABLEMY_TABLE獲取數據附加的列標識數據來自的db_link。 你能幫我開發一個存儲過程,它將從MY_TABLE @中加載數據並將其插入到MY_CENTRAL_TABLE中,其中db_link將作爲參數傳遞給過程?

謝謝!

回答

2

您將需要使用動態SQL:

procedure load_from_dblink(dblink_name string) 
is 
    sql_statment varchar2(2000); 
begin 
    sql_statement := "insert into my_central_table select '''|| 
         dblink_name|| 
         ''', t.* from [email protected]'|| 
         dblink_name||' t'; 
    execute immediate sql_statement; 
end; 
+0

謝謝VAV!我敢肯定,我嘗試了非常相似的語法,但沒有工作..這很好! – kafe

相關問題