python操作oracle數據庫


本文主要介紹python對oracle數據庫的操作學習

包含:oracle數據庫在Windows操作系統下的安裝和配置、python需要安裝的第三方拓展包以及基本操作的樣例學習。

1          Oracle數據庫

1.1       Oracle環境配置&客戶端連接

1.1.1          下載安裝Oracle綠色版客戶端instantclient:

到oracle官網下載instantclient basic包,解壓縮到E:\ProgramFile\instantclient;

1.1.2          設置環境變量:

  • NLS_lANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK(注意中間有空格,這個如果不設,toad查詢中文會是亂碼)
  • TNS_ADMIN= E:\ProgramFile\instantclient
  • Path=...;E:\ProgramFile\instantclient

1.1.3     配置tnsnames.tns文件:

在E:\ProgramFile\instantclient下建立文件tnsnames.ora,將下面內容粘貼進該文件:

*** =

  (DESCRIPTION =

    (ADDRESS_LIST =

   (ADDRESS = (PROTOCOL = TCP)(HOST= ***)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

     (SERVICE_NAME = ***)

    )

  )

注:圖中紅色部分根據自己需要進行更改。

1.1.4          配置PL/SQL Developer進行連接:

在tools/preference里,oracle-connection選項配置oracle home和oci library:

  • oracle home:E:\ProgramFile\instantclient
  • oci library:E:\ProgramFile\instantclient\oci.dll

 

配置完成,可以重啟 plsql developer,輸入正確的用戶名和密碼就可以連接啦~~~

1.2       python連接oracle數據庫

1.2.1          安裝cx_Oracle包:

http://cx-oracle.sourceforge.net/  需要注意下版本,根據操作系統和已安裝的python版本進行選擇

 

自行選擇版本,下載后直接執行即可

 

 

1.2.2          安裝后的驗證:

import cx_Oracle沒有報錯:

 

備注:如果import cx_Oracle 時報錯提示找不到OCI.DLL,解決方法:到裝了Oracle的機器上找一個,然后copy到Libsite-packages目錄下即可。

1.3       Python連接oracle數據庫的基本操作

1.3.1          創建數據庫連接connect和關閉數據庫連接close

創建數據庫連接的三種方式:

方法一:用戶名、密碼和監聽分開寫

import cx_Oracle

db=cx_Oracle.connect('username/password@host/orcl')

db.close()

 

方法二:用戶名、密碼和監聽寫在一起

import cx_Oracle

db=cx_Oracle.connect('username','password','host/orcl')

db.close()

 

方法三:配置監聽並連接

import cx_Oracle

tns=cx_Oracle.makedsn('host',1521,'orcl')

db=cx_Oracle.connect('username','password',tns)

db.close()

 

1.3.2          建立cursor並執行SQL語句:查詢、更新、插入、刪除

1.3.2.1         創建數據庫連接,創建游標cursor,然后執行sql語句,執行完成后,關閉游標,關閉數據庫連接

創建連接后,建立cursor,並執行SQL語句

 

1.3.2.2         插入、更新、刪除操作后需要提交commit


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM