程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python連接orcal數據庫以及解決1047報錯方法(已解決)

編輯:Python

背景
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、寫完可以運行程序了,出現以下報錯(網上解決方法很多,大家真的要判斷自己的情況後再改動)

可能原因有:

  • python、instant client位數不匹配,我就是這個原因,下載64位的instant client,我在這裡下載的:http://www.itmop.com/?down(看起來有點不正經,但是注冊orcal賬號好麻煩)

10.1 先改環境變量,一共有三個地方需要改**(這一步很重要,不能改錯)**:
系統變量中新建下圖,寫入instantclient 存放路徑,地址要復制全,到最裡面的數字結尾的文件夾地址
Path路徑中,加上上述路徑
新建系統變量,填入下圖值

10.2 把instant client 文件夾下的以下4個文件復制粘貼到python安裝目錄下-Lib -site-packages文件夾下,應該是選其中三個,我嘗試了以後也分不清放了那個才成功的,就一起復制過去了


10.3 重新啟動pycharm,運行代碼就可以了


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved