JAVA_HOME。java -jar jython_installer-2.2.1.jar 安裝至 C:\jython2.2.1。zxJDBC.jar 至 C:\tmp。ojdbc14.jar (JDK 1.4/1.5)、ojdbc5.jar (JDK 1.6)、ojdbc6.jar (JDK 1.7+),放入 C:\tmp。set CLASSPATH=C:\tmp\ojdbc5.jar;C:\tmp\zxJDBC.jar;%CLASSPATH%
from oracle.jdbc.driver import OracleDriver
from java.sql import DriverManager
def connect(un, pw, sid, host, port):
driver = OracleDriver()
DriverManager.registerDriver(driver)
url = "jdbc:oracle:thin:@%s:%s:%s" % (host, port, sid)
conn = DriverManager.getConnection(url, un, pw)
return conn
def do_stuff(conn):
stmt = conn.createStatement()
rset = stmt.executeQuery("SELECT banner FROM sys.v_$version")
while rset.next():
print rset.getString(1)
stmt.close()
if __name__ == "__main__":
un = "ebc20"
pw = "abc"
sid = "abc"
host = "10.4.231.16"
port = "1521"
conn = connect(un, pw, sid, host, port)
do_stuff(conn)
conn.close()
C:\jython2.2.1\jython.bat C:\tmp\ora.py
輸出 Oracle 版本橫幅資訊,驗證連線成功。
ClassNotFoundException:檢查 CLASSPATH 包含正確 ojdbc 版本。ORA-12505:SID/Service Name 錯誤,確認 `lsnrctl status` 註冊的服務名。ORA-28040:12c+ 預設不允許 10g 客戶端認證,需設定 `SQLNET.ALLOWED_LOGON_VERSION_SERVER=10` 或升級驅動。Jython + zxJDBC 讓 Python 語法愛好者在 JVM 上輕量級存取 Oracle,適合腳本自動化、ETL 原型、測試驗證等場景。生產核心業務仍建議使用成熟的 Java/JDBC 或 Python/cx_Oracle 堆疊。