如何使用 python pypyodbc 连接 oracle 数据库

How to connect oracle database with python pypyodbc

我正在尝试使用 pypyodbc:

从我的 python 代码连接 oracle 数据库
conn_string = "driver={Oracle in OraClient11g_home1}; server='example.oneco.com:1521'; database='tabto'; uid='myuid'; pwd='mypwd'"
conn = pypyodbc.connect(conn_string)

我收到错误消息:

Error: (u'HY000', u'[HY000] [Oracle][ODBC][Ora]ORA-12560: TNS:protocol adapter error\n')

以下是在我的 tnsnames.ora 文件中找到的连接字符串。请告诉我什么是正确的使用方法 pypyodbc.

tabto, tabto.world, tabto.oracleoutsourcing.com, tabto.oneco.com =
  (DESCRIPTION =
    (ADDRESS = 
      (PROTOCOL = TCP)
      (HOST = example.oneco.com)
      (PORT = 1521)
    )
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = tabto_dcu)
    )
  )
conn = pyodbc.connect(r'DRIVER={SQL Server Native Client 11.0};SERVER=example.oneco.com:1521;DATABASE=tabto;UID=youruid;PWD=password')

尝试在中间不使用引号 (') 的代码...

也检查 pyodbc wiki:https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-SQL-Server-from-Windows

关键是通过定义dbq参数linkpython代码到tnsname.ora。所以将代码更改为以下有效。

conn_string = "driver={Oracle in OraClient11g_home1}; dbq='tabto'; uid='myuid'; pwd='mypwd'"
conn = pypyodbc.connect(conn_string)