【问题标题】:Error connection with JDBC to Oracle service name (jaydebeapi)使用 JDBC 连接到 Oracle 服务名称时出错 (jaydebeapi)
【发布时间】:2019-11-11 20:50:40
【问题描述】:

我尝试从 Raspberry pi 在 python 中发出 Oracle 请求。问题是:

"Oracle 不支持树莓派使用的 ARM CPU 架构。您下载并解压了 Oracle Instant Client,但它实际上无法运行。没有 Oracle 客户端库,cx_oracle 将无法工作,也不会通用 Python ODBC 连接器。”

但我需要 python,所以安装了 JPype 和 JayDeBeApi,我在 jupyter notebopok 上写了这个:

import jaydebeapi
import jpype
from jpype import *
classpath="ava-1.5.0-gcj-6-armhf"
jvm_path = "/usr/lib/jvm/java-1.5.0-gcj-6-armhf/lib"
jHome = jpype.getDefaultJVMPath()
print(jHome)

/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/lib/arm/client/libjvm.so

conn=jaydebeapi.connect('oracle.jdbc.driver.OracleDriver','[admin]/[root]@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=helloworld.com)(PORT=1521))(CONNECT_DATA=(SID=hello42)))')

但我有这个错误:

AttributeError                            Traceback (most recent call last)
<ipython-input-34-82d7959b353e> in <module>
----> 1 conn=jaydebeapi.connect('oracle.jdbc.driver.OracleDriver','[admin]/[root]@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=helloworld.com)(PORT=1521))(CONNECT_DATA=(SID=hello42)))')

/usr/local/lib/python3.5/dist-packages/jaydebeapi/__init__.py in connect(jclassname, url, driver_args, jars, libs)
    379     else:
    380         libs = []
--> 381     jconn = _jdbc_connect(jclassname, url, driver_args, jars, libs)
    382     return Connection(jconn, _converters)
    383 

/usr/local/lib/python3.5/dist-packages/jaydebeapi/__init__.py in _jdbc_connect_jpype(jclassname, url, driver_args, jars, libs)
    181         types_map = {}
    182         for i in types.__javaclass__.getClassFields():
--> 183             types_map[i.getName()] = i.getStaticAttribute()
    184         _init_types(types_map)
    185     global _java_array_byte

AttributeError: '_jpype.PyJPField' object has no attribute 'getStaticAttribute'

如何解决?

【问题讨论】:

    标签: java python oracle raspberry-pi3 jaydebeapi


    【解决方案1】:

    您使用什么 JPype 版本?上周发布了一个新版本。如果您使用的是 0.7.0 版,请尝试使用之前的 0.6.3 版

    【讨论】:

    • 我通过以下方式检查:pip3 install jpype1:“要求已经满足:/usr/local/lib/python3.5/dist-packages (0.7.0) 中的 jpype1”
    • 试试这个:pip3 install JPype1==0.6.3
    • 很高兴能为您提供帮助。请标记我的答案作为解决方案。谢谢你:)
    • @Erik,给我的好朋友点个赞。感谢您指出了这一点。今天早上我一直在与同样的问题作斗争。我还注意到 Github 上有一个当前未解决的问题。
    猜你喜欢
    • 2017-01-26
    • 2019-12-07
    • 2020-06-29
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 2013-10-15
    • 2019-08-21
    • 2014-11-25
    相关资源
    最近更新 更多