我需要验证用户提供的oracle帐户信息数据是否正确。我试图使用cx_Oracle,但我服务器上的OCI.DLL版本(我无法升级)似乎不是cx_Oracle的正确版本。
如何在不使用cx_Oracle的情况下验证用户名/密码?
答案 0 :(得分:3)
如果你无法编译cx_Oracle,你有两个选择:
sqlplus
进行互动。 答案 1 :(得分:1)
问题很可能是cx_Oracle模块的版本。
安装模块时必须非常小心,为oracle安装选择合适的版本。
http://cx-oracle.sourceforge.net/
如果您无法使用cx_Oracle连接到数据库,则可能很难检查信息的准确性
如果您安装了sql * plus,您可能会尝试使用子进程模块启动进程并检查是否可以连接,但在我看来,您可能更适合修复cx_Oracle < / p>
编辑:使用子流程模块。
以下是如何使用子进程执行此操作:
import subprocess
def is_login_valid(user, password, instance):
output = subprocess.check_output("sqlplus %s/%s@%s" %(user, password, instance))
return (output.find("ORA-01017") == -1 and output.find("ORA-12154") == -1)
答案 2 :(得分:1)