用jython 訪問Oracle資料庫

來源:互聯網
上載者:User

    
準備工作
下載
http://jaist.dl.sourceforge.net/sourceforge/zxjdbc/zxJDBC-2.1.tar.gz
http://jaist.dl.sourceforge.net/sourceforge/jython/jython_installer-2.2.1.jar
根據自己的jdk版本下載對應的ojdbc版本
http://download.oracle.com/otn/utilities_drivers/jdbc/10203/ojdbc14.jar
http://download.oracle.com/otn/utilities_drivers/jdbc/111060/lib/ojdbc5.jar
http://download.oracle.com/otn/utilities_drivers/jdbc/111060/lib/ojdbc6.jar

安裝(需要已經安裝了jdk/jre?)
java -jar jython_installer-2.2.1.jar 安裝到C:/jython2.2.1
將zxJDBC.jar解壓縮到c:/tmp
將mm.mysql-2.0.4-bin.jar複製到c:/tmp
C:/jython2.2.1>set CLASSPATH=c:/tmp/ojdbc5.jar;c:/tmp/zxJDBC.jar;%CLASSPATH%

啟動Oracle伺服器

進入jython環境訪問Oracle
編輯檔案c:/tmp/ora.py
from oracle.jdbc.driver import OracleDriver
from java.sql import DriverManager

def connect(un, pw, sid, host, port):
     driver = OracleDriver()
     DriverManager.registerDriver(driver)
     connection = "jdbc:oracle:thin:@%s:%s:%s" % (host, port, sid)
     conn = DriverManager.getConnection(connection, un, pw)
     return conn

def doStuff(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)
     doStuff(conn)

C:/jython2.2.1>jython /tmp/ora.py
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE    10.2.0.3.0      Production
TNS for HPUX: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production

要用jython自己封裝的dbexts庫
編輯一個名為dbexts.ini的檔案儲存到c:/jython2.2.1/lib
[default]
name=mysqltest

[jdbc]
name=ora
url=jdbc:oracle:thin:@10.4.231.16:1521:abc
user=ebc20
pwd=abc
driver=oracle.jdbc.driver.OracleDriver
datahandler=com.ziclix.python.sql.handler.OracleDataHandler

進入jython

>>> from dbexts import dbexts
>>> oracon = dbexts("ora", "c:/jython2.2.1/lib/dbexts.ini")

>>> oracon.isql("SELECT * FROM v$version")

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE    10.2.0.3.0      Production
TNS for HPUX: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production

5 rows affected

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.