一个查询中的Odbc&Sql连接
问题描述:
我想通过Odbc连接从informix数据库中选择一些记录,并将它们插入Sql数据库表中。一个查询中的Odbc&Sql连接
INSERT INTO SAS.dbo.disconnectiontemp
(meterno)
SELECT DISTINCT met_number
FROM Bills.dbadmin.MeterData
我已经搜寻重新调整,但他们没有解决我的问题。是否有可能在一个地方有两个连接?
任何帮助或建议,将不胜感激。谢谢
答
我相信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)
我意识到我带你在一个不同的方向,但希望这是有帮助的还是以某种方式。如果需要,欢迎提供其他示例。
Thx,我明白了我不能在同一个查询中使用它。无论如何,我通过从odbc中检索值并存储在数组中来解决此问题,然后将数据从数组插入到sqldb(位长)。但我无法理解你的伪代码的最后3行。可能会是一个更好的方法。 – Kayathiri
@Kayathiri听起来像你基本上正在做我正在做的东西:)将值放入数组是一种将它们转换为可以使用另一个插入语句加载的格式的方法。很高兴你解决了它! – 1CodeRed
@Kayathiri如果你觉得这确实是你的方向,而且答案很有帮助,请将答案标记为已接受! – 1CodeRed