国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python操作Oracle數據庫的簡單方法和封裝類實例

2020-02-23 00:01:55
字體:
來源:轉載
供稿:網友

本文實例講述了Python操作Oracle數據庫的簡單方法和封裝類。分享給大家供大家參考,具體如下:

最近工作有接觸到Oracle,發現很多地方用Python腳本去做的話,應該會方便很多,所以就想先學習下Python操作Oracle的基本方法。

考慮到Oracle的使用還有一個OracleClient的NetConfig的存在,我覺得連接起來就應該不是個簡單的事情。

果然,網上找了幾個連接方法,然后依葫蘆卻畫了半天,卻也不得一個瓢。

方法1:用戶名,密碼和監聽分別作為參數

conn=cx_Oracle.connect('用戶名','密碼','數據庫地址:數據庫端口/SID')

根據我看的幾篇文章和我寫代碼出錯的提示,我找到了python連接數據庫的配置項應該和Oracle客戶端的配置文件tnsnames.ora有關。但是我的配置項并沒有SID項,而且一開始我也不知SID是個什么東西,網上寫什么我就跟著寫,所以這種方法失敗了。后來想通了要在配置項加一個SID,然后想想這個東西配置完了我系統是不是要重啟啊。所以,先看看其他方法吧….

方法2:用戶名,密碼和監聽共同作為一個參數

conn=cx_Oracle.connect('用戶名/密碼@數據庫地址:數據庫端口/SID')

這個方法基本和方法一一樣,換湯不換藥…

方法3:使用tns配置信息

conn=cx_Oracle.connect('用戶名','密碼',tns)

網上的代碼獲取tns是用函數做的,依然會使用SID,但是..我已經可以用的配置項并沒有SID啊,所以使用

tns=cx_Oracle.makedsn('數據庫地址','數據庫端口', 'SID')

依舊不行,但是看看這個tns的生成方法和上面的兩種方法差不多的。但是我發現我隨便輸入一個SID后生成的數據是這樣的。

(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))(CONNECT_DATA=(SID=XE)))

然而,我的客戶端的配置項大概是這樣的,

(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=KGDB)))

我擦,好像長得一樣的,類型也都是字符串類型的,試試直接把我文件里的配置項賦值給tns試試。

tns = '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=KGDB)))'conn = cx_Oracle.connect('nicker', '123456', tns)

嗯。成功了~

最后,貼一個基本使用方法全代碼

#coding:utf-8import cx_Oracle# 創建數據庫連接# cx_Oracle.connect('username','pwd','ora的tns信息')# oracle數據庫的tns信息,從tnsnames.ora中找到plsql可用的配置項,將該配置項直接拷貝過來即可ora_tns = '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=KGDB)))'conn = cx_Oracle.connect('nicker', '123456', ora_tns)# 操作游標cursor = conn.cursor()# 執行查詢cursor.execute("SELECT * FROM inst_info")# 獲取返回信息rs = cursor.fetchall()# 輸出信息for v in rs:  print v#關閉連接,釋放資源cursor.close()conn.close()            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和顺县| 晋中市| 察哈| 镇原县| 诸暨市| 南通市| 澄迈县| 防城港市| 灵璧县| 苍南县| 惠安县| 高清| 平凉市| 博白县| 榆社县| 镇赉县| 开封县| 新晃| 曲沃县| 额尔古纳市| 新巴尔虎右旗| 英德市| 大悟县| 漳州市| 凉山| 安顺市| 楚雄市| 京山县| 吉木萨尔县| 呼玛县| 青铜峡市| 泸州市| 抚远县| 武鸣县| 洱源县| 林芝县| 武定县| 诸城市| 泰兴市| 海门市| 五家渠市|