我遇到了同样的问题,我可以通过Oracle SQL Developer连接到数据库,但不通过pyodbc
。其他人做了大部分数据库设置,所以我不确定正确的连接参数。我会通过您如何在Windows计算机上进行连接来解决您的问题。
在开始菜单中,我键入“odbc”并选择“Microsoft ODBC Administrator”。在“系统DSN”选项卡下,我找到了我的DSN名称(我们称之为myDSN)和相应的驱动程序(我的是“OraClient11g_home2中的Oracle”)。我也有我的数据库指定用户名和密码,所以我的连接线,现在看起来是这样的:
cnxn = pyodbc.connect(driver='{Oracle in OraClient11g_home2}', dsn='myDSN', uid='HODOR', pwd='hodor')
也许在这一点上它会为你工作,但我还是无法连接。这台计算机是32位和64位驱动程序的混乱,所以我想我是指向错误的。因此,再次进入开始菜单,在所有程序下,我找到一个名为“OraClient11g_home2中的Oracle”的文件夹,并在其下方有一个名为“Oracle in OraClient11g_home32Bit”的文件夹。我在Python中将我的连接线更改为以下内容:
cnxn = pyodbc.connect(driver='{Oracle in OraClient11g_home32Bit}', dsn='myDSN', uid='HODOR', pwd='hodor')
并且它已连接。
PYODbC应该可以很好地连接到Oracle数据库 - 您是否尝试过构建一个系统ODBC连接并将其提供给Python? – jsbueno