使用 jython 操作 Oracle

安裝與設定

    • 下載 jython 後,修改 jython.bat 或 jython.sh:
      • 指定 Oracle JDBC 程式庫 CLASSPATH:
        • set CLASSPATH="C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib\ojdbc6.jar"
    • 執行:jython [查詢 新增 刪除]
    • Oracle 資料庫安排
      • 建立一個用戶或是使用預設 HR 帳號。
      • 執行 OraTable.sql 建立表格。
      • 建立預儲程式。

查詢資料程式列表

from oracle.jdbc.driver import OracleDriver from java.sql import DriverManager def OraConnect(OraUID, OraPWD, OraSID, OraHost, OraPort): myOraDriver = OracleDriver() DriverManager.registerDriver(myOraDriver) myOraConnectionURL = "jdbc:oracle:thin:@%s:%s:%s" % (OraHost, OraPort, OraSID) myOraConnection = DriverManager.getConnection(myOraConnectionURL, OraUID, OraPWD) return myOraConnection def doQuery(OraConnection): myOraStatement = OraConnection.createStatement() myOraResultSet = myOraStatement.executeQuery("SELECT * FROM DEPT ORDER BY DEPTNO") while (myOraResultSet.next()): print myOraResultSet.getInt(1), '\t', \ myOraResultSet.getString(2).encode("iso-8859-8"), '\t', \ myOraResultSet.getString(3).encode("iso-8859-8") myOraStatement.close() def doQuery2(OraConnection): myOraStatement = OraConnection.createStatement() myOraResultSet = myOraStatement.executeQuery("SELECT * FROM EMP ORDER BY EMPNO") while (myOraResultSet.next()): print myOraResultSet.getInt(1), '\t', \ myOraResultSet.getString(2).encode("iso-8859-8"), '\t', \ myOraResultSet.getString(3).encode("iso-8859-8"), '\t', \ myOraResultSet.getInt(4), '\t', \ myOraResultSet.getDate(5), '\t', \ myOraResultSet.getFloat(6), '\t', \ myOraResultSet.getFloat(7), '\t', \ myOraResultSet.getInt(8) myOraStatement.close() if __name__ == "__main__": myOraUID = 'Emprogria' myOraPWD = '470112' myOraSID = 'XE' myOraHost = 'localhost' myOraPort = '1521' myOraConnection = OraConnect(myOraUID, myOraPWD, myOraSID, myOraHost, myOraPort) doQuery(myOraConnection) doQuery2(myOraConnection) myOraConnection.close()