Python(python2.3和python2.6都存在此问题)连接oracle(10g),使用cx_Oracle库(最新的)
当运行到:
引用
>>> import cx_Oracle
>>> dsn = cx_Oracle.makedsn('jx-apptest-map03.jx.domain.com', 1588, "map")
>>> con = cx_Oracle.connect("mapdb", "mapdb948948", dsn)
Traceback (most recent call last):
File "", line 1, in
cx_Oracle.InterfaceError: Unable to acquire Oracle environment handle
环境变量:
引用
MANPATH=:/usr/share/domain/man
HOSTNAME=jx-apptest-map03.jx.domain.com
TERM=linux
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=172.18.251.102 50868 22
OLDPWD=/home/map/husc
SSH_TTY=/dev/pts/2
USER=map
LD_LIBRARY_PATH=/home/oramap/10g/lib:/home/map/husc/python/lib/
ORACLE_SID=MAP
ORACLE_BASE=/prod/data
MAIL=/var/spool/mail/map
PATH=/prod/10g/bin:/prod/10g/bin/OPatch:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/share/domain/bin:/home/map/bin:/sbin:/home/map/bin:/home/oramap/10g/bin:/home/map/bin
INPUTRC=/etc/inputrc
PWD=/home/map
LANG=en_US
SHLVL=1
HOME=/home/map
LD_ASSUME_KERNEL=2.4.1
LOGNAME=map
SSH_CONNECTION=172.18.251.102 50868 10.65.21.175 22
LESSOPEN=|/usr/bin/lesspipe.sh %s
ORACLE_HOME=/home/oramap/10g
HISTTIMEFORMAT=%y-%m-%d %H:%M:%S
G_BROKEN_FILENAMES=1
_=/bin/env
以前解决过在windows上python连接oracle数据库的问题,没有出现比较难搞定的问题,但是在linux上,由于对oracle服务端和客户端的环境不太熟悉,一时无法解决。
==========================================================================
以上问题我花了半天的时间来解决,上google翻阅了很多中外资料。在朋友中抛出问题之后,有人提议,是不是权限的问题。
然后试一试,发现确实是权限的问题,oracle客户端用户与运行本脚本的用户不同,运行脚本的用户打不开oracle连接。
网上没有这种解决方式,故填补上。