背景:
1、自動化測試過程中需要用python連接數據庫對界面上計算出來的數據進行校驗
2、平時查詢數據庫用的PLSQL,公司用的orcal數據庫
3、cmd打開命令提示符,輸入python
,提示版本位3.9,64位,plsql新建sql window查詢,輸入select * from v$version
,看到plsql是64位的
4、寫在前面:安裝的python、instantclient位數需要一致
5、python連接orcal數據庫需要用到cx_Oracle
這個庫,python3以上版本在終端用命令pip3 install cx_Oracle
安裝,如果安裝不成功可以看我上一篇文章怎麼解決的
6、看到下圖說明安裝成功了
7、顯示安裝成功,但是在寫代碼的時候導入一直報錯怎麼回事?
解決辦法:先看左側下有沒有,沒有的話重啟pycharm看看,還沒有的話,雙擊shift鍵,打開,手動搜一下再添加(我就是這麼解決的)
8、接下來我們開始寫代碼了,連接代碼如下:
import cx_Oracle
# 連接數據庫,有好幾種寫法,後續補充
conn = cx_Oracle.connect('用戶名', '密碼', '地址:端口/服務') # 這裡替換成對應的值就可以了
# 使用cursor()方法獲取操作游標
cursor = conn.cursor()
# 使用execute方法執行SQL語句
result = cursor.execute("sql語句 ")
# 多行sql的時候用三引號可以進行換行,看起來比較美觀
# 使用fetchone()方法獲取一條數據
data = result.fetchone()
# 獲取所有數據
all_data = result.fetchall()
# 獲取部分數據,8條
many_data = result.fetchmany(8)
print(data)
cursor.close()
conn.close()
查詢的記過中包含中文出現亂碼時,寫入
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
9、寫完可以運行程序了,出現以下報錯(網上解決方法很多,大家真的要判斷自己的情況後再改動)
可能原因有:
10.1 先改環境變量,一共有三個地方需要改**(這一步很重要,不能改錯)**:
系統變量中新建下圖,寫入instantclient 存放路徑,地址要復制全,到最裡面的數字結尾的文件夾地址
Path路徑中,加上上述路徑
新建系統變量,填入下圖值
10.2 把instant client 文件夾下的以下4個文件復制粘貼到python安裝目錄下-Lib -site-packages文件夾下,應該是選其中三個,我嘗試了以後也分不清放了那個才成功的,就一起復制過去了
10.3 重新啟動pycharm,運行代碼就可以了