连接到Oracle数据库时出现python问题

时间:2017-08-25 17:24:26

标签: python database oracle

我有这个python代码,我正在尝试连接到Oracle数据库:

RequestDispatcher rd=request.getRequestDispatcher("/AddManager.jsp");          
rd.forward(request, response);  
上面的{p> def create_database(): try: dsn_tns = cx_Oracle.makedsn(db_endpoint, port, SID) print(dsn_tns) except: print('ERROR: Unexpected error: Could not create dsn.') logger.error("ERROR: Unexpected error: Could not create dsn.") sys.exit() try: con_str = "username/password@db_endpoint:63000/SID" conn = cx_Oracle.connect(con_str) # conn = cx_Oracle.connect(user = db_username,password = db_password, dsn = dsn_tns) except: print('ERROR: Unexpected error: Could not connect to MySql instance.') logger.error("ERROR: Unexpected error: Could not connect to MySql instance.") sys.exit() if __name__ == '__main__': create_database() db_endpoint

如您所见,我尝试了两种方法 - 形成dsn并直接使用host_name

当我执行上面的代码时,我得到错误DPI-1047:

  

无法加载32位Oracle客户端库:“%1不是有效的Win32应用程序”。请参阅https://oracle.github.io/odpi/doc/installation.html#windows以获取帮助。

上面的代码中是否有任何错误,因为它无法连接?

1 个答案:

答案 0 :(得分:0)

检查您是否安装了32位(而不是64位)Oracle客户端库,并且在其他Oracle库之前它们位于PATH中。 Windows错误消息“%1不是有效的Win32应用程序”是典型的架构不匹配。或者,您可以将64位Python与64位Oracle客户端库一起使用。

如果您使用的是Instant Client,请确保已安装正确的Windows VS Restributable。有关版本信息,请参阅Instant Client页面(32-bit64-bit)。

同时检查Python cx_Oracle installation troubleshooting信息。