我已经在我的Linux机器上安装了python Oracle模块cx_Oracle。oracle用户和根用户都可以使用cx_Oracle.Connection(...)导入cx_Oracle并创建数据库连接。
服务器上的其他用户也可以导入cx_Oracle,但是当他们尝试创建一个connection对象时,会抛出以下异常:
>>> cx_Oracle.Connection('....')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
cx_Oracle.InternalError: No Oracle error?我已经确认我要工作的用户设置了所有正确的系统变量: ORACLE_HOME、LD_LIBRARY_PATH、ORACLE_SID和PATH。该用户使用sqlplus并以这种方式连接到数据库也没有问题。
我认为这是一个文件权限问题,因为oracle和root用户都没有问题。我只是不确定是哪个文件导致了这个问题。
发布于 2013-06-11 16:37:45
我也有同样的问题,对我来说,这是一些Oracle语言环境文件的访问权限问题。这个问题通过让$ORACLE_HOME/nls/data和它的内容变得可读来解决了。
为了找出问题所在,我编写了一个小脚本test_oracle.py:
import cx_Oracle as oracle
conn = oracle.connect("user/pwd@host:port/SID")然后运行truss python test_oracle.py来查找访问问题(当然,在Linux上我使用的是strace )。
https://stackoverflow.com/questions/12482299
复制相似问题