我有这个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以获取帮助。
上面的代码中是否有任何错误,因为它无法连接?
答案 0 :(得分:0)
检查您是否安装了32位(而不是64位)Oracle客户端库,并且在其他Oracle库之前它们位于PATH中。 Windows错误消息“%1不是有效的Win32应用程序”是典型的架构不匹配。或者,您可以将64位Python与64位Oracle客户端库一起使用。
如果您使用的是Instant Client,请确保已安装正确的Windows VS Restributable。有关版本信息,请参阅Instant Client页面(32-bit或64-bit)。
同时检查Python cx_Oracle installation troubleshooting信息。