2016-06-15 64 views
5

我想通過Odbc連接從informix數據庫中選擇一些記錄,並將它們插入Sql數據庫表中。一個查詢中的Odbc&Sql連接

INSERT INTO SAS.dbo.disconnectiontemp 
     (meterno) 
SELECT DISTINCT met_number     
FROM Bills.dbadmin.MeterData 

我已經搜尋重新調整,但他們沒有解決我的問題。是否有可能在一個地方有兩個連接?
任何幫助或建議,將不勝感激。謝謝

回答

5

我相信ODBC連接是使用爲特定數據庫引擎(例如Oracle,MSSQL,PSQL等)定製的ODBC驅動程序進行的,因此,唯一的查詢不能包含兩個不同的數據庫引擎查詢通過ODBC接口通過特定的驅動程序運行。

但是,您可以使用任何具有ODBC庫的編程語言的簡單腳本,在代碼中輕鬆使用兩個ODBC驅動程序。例如,我使用Python和pyodbc來初始化多個連接並在MSSQL,MySQL和PSQL數據庫之間傳輸數據。下面是一個僞代碼示例:

import pyodbc 
psql_cursor = pyodbc.connect('<PSQL_ODBC_CONNECTION_STRING>').cursor() 
mysql_cursor = pyodbc.connect('<MYSQL_ODBC_CONNECTION_STRING>').cursor() 
result_set = mysql_cursor.execute('<SOME_QUERY>').fetchall() 
to_insert = <.... Some code to transform the returned data if needed ....> 
psql_cursor = psql_cursor.execute('insert into <some_table> VALUES (%s)' % to_insert) 

我意識到我帶你在一個不同的方向,但希望這是有幫助的還是以某種方式。如果需要,歡迎提供其他示例。

+1

Thx,我明白了我不能在同一個查詢中使用它。無論如何,我通過從odbc中檢索值並存儲在數組中來解決此問題,然後將數據從數組插入到sqldb(位長)。但我無法理解你的僞代碼的最後3行。可能會是一個更好的方法。 – Kayathiri

+1

@Kayathiri聽起來像你基本上正在做我正在做的東西:)將值放入數組是一種將它們轉換爲可以使用另一個插入語句加載的格式的方法。很高興你解決了它! – 1CodeRed

+0

@Kayathiri如果你覺得這確實是你的方向,而且答案很有幫助,請將答案標記爲已接受! – 1CodeRed