簡體   English   中英

JDBC與Oracle服務名稱(jaydebeapi)的錯誤連接

[英]Error connection with JDBC to Oracle service name (jaydebeapi)

我嘗試從Raspberry pi用python發出Oracle請求。 問題是:

“ Oracle不支持Raspberry Pi使用的ARM CPU體系結構。您下載並解壓縮了Oracle Instant Client,但是它實際上無法運行。而且如果沒有Oracle Client庫,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'

如何解決?

您使用什么JPype版本? 上周發布了一個新版本。 如果您使用的是0.7.0版,請嘗試使用以前的0.6.3版

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM