如何使用python pypyodbc

时间:2017-01-04 23:54:37

标签: python oracle oracle11g 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)

我收到错误消息:

  

错误:(u' HY000',u' [HY000] [Oracle] [ODBC] [Ora] ORA-12560:TNS:协议   适配器错误\ 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)
    )
  )

2 个答案:

答案 0 :(得分:1)

键是通过定义conn_string = "driver={Oracle in OraClient11g_home1}; dbq='tabto'; uid='myuid'; pwd='mypwd'" conn = pypyodbc.connect(conn_string) 参数将链接python代码链接到tnsname.ora。所以将代码更改为以下工作。

#ifndef SomeThread_H
#define SomeThread_H

class SomeThread {

   public:

      SomeThread(void);

      virtual ~SomeThread(void);

      void runThread();

};    // SomeThread

#endif // _SomeThread_H_

答案 1 :(得分:0)

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