【发布时间】:2014-08-28 07:10:41
【问题描述】:
背景。
我的操作系统是 Win7 64 位。
我的 Python 是来自 python-2.7.8.amd64.msi 的 2.7 64bit
我的 cx_Oracle 是来自 cx_Oracle-5.0.4-10g-unicode.win-amd64-py2.7.msi
的 5.0 64bit
我的 Oracle 客户端是 10.1(我不知道 32 或 64 拱,但 SQL*Plus 是 10.1.0.2.0
数据库是
Oracle 数据库 10g 企业版版本 10.2.0.4.0 - 64 位
PL/SQL 版本 10.2.0.4.0 - 生产
CORE 10.2.0.4.0 生产
适用于 64 位 Windows 的 TNS:版本 10.2.0.4.0 - 生产
NLSRTL 版本 10.2.0.4.0 - 生产
ORACLE_HOME 变量从 haki 回复中添加。
C:\Oracle\product\10.1.0\Client_1\
不工作的问题仍然存在。
ORACLE_HOME 从instantclient-basic-win64-10.2.0.5.zip 试用Oracle Instant C:\instantclient_10_2\
C:\Users\PavilionG4>sqlplus Lee/123@chstchmp
初始化 SQL*Plus 时出现错误 6
找不到消息文件 sp1.msb
SP2-0750:您可能需要将 ORACLE_HOME 设置为您的 Oracle 软件目录
我的sql*plus不让我设置Oracle。
ORACLE_HOME回到
C:\Oracle\product\10.1.0\Client_1\
PATH 变量
C:\Program Files (x86)\Seagate Software\NOTES\
C:\Program Files (x86)\Seagate Software\NOTES\DATA\
C:\Program Files (x86)\Java\jdk1.7.0 _05\bin
C:\Oracle\product\10.1.0\Client_1\bin
C:\Oracle\product\10.1.0\Client_1\jre\1.4.2\bin\client
C: \Oracle\product\10.1.0\Client_1\jre\1.4.2\bin
C:\app\PavilionG4\product\11.2.0\dbhome_1\bin
C:\app\PavilionG4\product\11.2 .0\client_2\bin
c:\Program Files (x86)\AMD APP\bin\x86_64
c:\Program Files (x86)\AMD APP\bin\x86
C:\Windows\ system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
c:\Program Files (x86)\ATI Technologies\ ATI.ACE\Core-Static
C:\Users\PavilionG4\AppData\Local\Smartbar\Application\
C:\PROGRA~2\IBM\SQLLIB\BIN
C:\PROGRA~2\ IBM\SQLLIB\FUNCTION
C:\Program Files\gedit\bin
C:\Kivy-1.7.2-w32
C:\Program Files (x86)\ZBar\binj
C: \Program Files (x86)\Java\jdk1.7.0_05\bin
C:\Program Files\MATLAB\R2013a\runtime\win64
C:\Program Files\MATLAB\R2013a\b在
C:\Python27
TNS 是:
C:\Oracle\product\10.1.0\Client_1\NETWORK\ADMIN\tnsnames.ora
报告1 =
(描述 =
(地址列表 =
(地址 = (协议 = TCP)(主机 = 172.28.128.110)(端口 = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = REPORT1)
)
)
f1.py 显示错误
导入 cx_Oracle
ip = '172.25.25.42'
端口 = 1521
SID = '报告 1'
dns_tns = cx_Oracle.makedsn(ip,port,SID)
连接 = cx_Oracle.connect(u"Lee",u"123",dns_tns)
游标 = 连接。游标()
连接.close()
错误
回溯(最近一次通话最后一次):
文件“f1.py”,第 6 行,在
连接 = cx_Oracle.connect(u"Lee",u"123",dns_tns)
cx_Oracle.InterfaceError: 无法获取 Oracle 环境句柄
问题
1、如何获取Oracle环境句柄?
我已经搜索了网站。不幸的是,他们根本没有遇到我的问题。
2. 如何让 Python 使用另一个 Oracle 客户端而不影响现有客户端?
【问题讨论】:
-
我在 Windows 上也遇到了 cx_Oracle 的问题。无法解决解决方案,但请确保您的 python/cx/oracle 兼容 32/64 等关于帖子中建议的解决方案 - 尝试在运行 python 的 cmd 中设置 ORACLE_HOME。