五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

python實現(xiàn)與Oracle數(shù)據(jù)庫交互操作示例

發(fā)布日期:2021-12-18 13:18 | 文章來源:gibhub

1、安裝準備

① 正確安裝好Oracle數(shù)據(jù)庫(我的電腦是64位的,但是我最開始安裝的是Oracle32。因此,你要是有64位的安裝包,你就安裝64位的。)

② 正確安裝好python(注意:這個最好是安裝64位的,使用32位的python操作Oracle數(shù)據(jù)庫,會出現(xiàn)很多問題。)

③oracle數(shù)據(jù)庫客戶端instantclient下載安裝和環(huán)境變量配置(注意:現(xiàn)在電腦一般都是64位的,由于python安裝的是64位的,因此instantclient也是安裝64位的。)

注意:需要Oracle安裝包,可以留言說明?。?!

2、instantclient的安裝說明

instantclient下載地址:https://www.jb51.net/database/572638.html

版本選擇:你可以選擇版本11或者版本12這樣的高版本,進行下載即可。

3、instantclient安裝步驟

① 下載好instantclient后,進行解壓;

注意:這個解壓位置不要隨便放置,而是放在Oracle安裝目錄下的product目錄下(這個放在product的直接子目錄下。)

② 配置instantclient的環(huán)境變量;

③ 將instantclient解壓目錄下的oraociei11.dll、oraocci11.dll、oci.dll文件復(fù)制到python安裝目錄的Lib/site-packages下;
instantclient的解壓目錄:

python安裝目錄下的Lib/site-packages目錄:

4、還有幾個需要注意的地方

1)設(shè)置NLS_LANG環(huán)境變量:解決中文亂碼

當讀取的Oracle數(shù)據(jù)庫中的某張表中含有中文,就會出現(xiàn)中文亂碼的問題,因此需要我們設(shè)置這個環(huán)境變量,來解決Oracle中的中文亂碼問題。

NLS_LANG,全稱是National Language Support(NLS),它是一個環(huán)境變量 ,用于定義語言,地域以及字符集屬性。對于非英語的字符集 ,NLS_LANG的設(shè)置就非常重要。

① 直接在Windows中的CMD黑窗口中,設(shè)置NLS_LANG環(huán)境變量;

 C:\Users\AA>set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

② 直接在代碼中,添加代碼設(shè)置NLS_LANG環(huán)境變量(常用的方式);

import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

注意:上面兩種方式設(shè)置NLS_LANG環(huán)境變量,都僅對當前會話窗口有效,一旦關(guān)閉當前窗口,又會恢復(fù)至原來的狀態(tài),這樣恰恰是我們想要的。其實,也可以永久修NLS_LANG環(huán)境變量,但是不建議這么做,因為這樣會帶來一系列的問題。

2)關(guān)于TNS_ADMIN環(huán)境變量的說明

  關(guān)于這個環(huán)境變量的設(shè)置,我提供一個鏈接供你們參考,因為目前就學習來看我還沒有用到這個:
  https//www.jb51.net/article/226529.htm

3)關(guān)于python中,cx_Oracle驅(qū)動包的安裝

  對于我來說,我是直接使用"pip insatll cx_Oracle"就安裝成功了。
  如果你不成功,你可以使用如下鏈接,下載對應(yīng)版本的安裝包:
  https://www.lfd.uci.edu/~gohlke/pythonlibs/#cx_oracle
  如果還是不會,再提供下面一個安裝說明,希望對你有幫助:
https://www.jb51.net/article/226537.htm

5、python操作Oracle數(shù)據(jù)庫

  需要注意的是:當配置好所有的東西之后,其實用python操作Oracle和操作MySQL,在寫代碼上基本上大同小異。
  因此在學習下面的代碼之前,你可以參考我之前寫的python操作MySQL數(shù)劇庫的文章

1)python連接數(shù)據(jù)庫的3種方式

連接語法:cx_Oracle.connect(‘username/password@host/監(jiān)聽')

host代表你的Oracle服務(wù)器所在的地址,因為我的Oracle服務(wù)器就安裝在本機上,因此我這里可以寫localhost,我可以寫主機名DESKTOP-V4LKB10,我還可以寫主機IP

① 用戶名、密碼和監(jiān)聽寫在一起

import cx_Oracle
db = cx_Oracle.connect('scott/a123456@DESKTOP-V4LKB10:1521/orcl')

② 用戶名、密碼和監(jiān)聽分開寫

import cx_Oracle
db = cx_Oracle.connect("scott","a123456","192.168.2.1:1521/orcl")

③ 配置監(jiān)聽并連接

import cx_Oracle
moniter = cx_Oracle.makedsn('192.168.2.1',1521,'orcl')
db = cx_Oracle.connect('scott','a123456',moniter)

2)查詢數(shù)據(jù)…查

fetchone():一次獲取一條記錄

import cx_Oracle
# 注意:一定要加下面這兩行代碼,負責會中文亂碼;
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
db = cx_Oracle.connect("scott","a123456","192.168.2.1:1521/orcl")
cursor = db.cursor()
cursor.execute('select count(*) from emp1')
aa = cursor.fetchone()
print(aa)
cursor.execute('select ename,deptno,sal from emp1')  
for i in range(aa[0]):
 a,b,c = cursor.fetchone()
 d = "我的名字叫{},所在部門是{},工資是{}美元".format(a,b,c)
 display(d)
db.close()

截取部分結(jié)果如下:

fetchall():一次獲取所有記錄

import cx_Oracle
# 注意:一定要加下面這兩行代碼,負責會中文亂碼;
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
db = cx_Oracle.connect("scott","a123456","192.168.2.1:1521/orcl")
cursor = db.cursor()
cursor.execute('select ename,deptno,sal from emp1') 
aa = cursor.fetchall()
# print(aa)
for a,b,c in aa:
 d = "我的名字叫{},所在部門是{},工資是{}美元".format(a,b,c)
 display(d)
db.close()

截取部分結(jié)果如下:

③ 使用pandas中的read_sql()方法,將提取到的數(shù)據(jù)直接轉(zhuǎn)化為DataFrame進行操作

import cx_Oracle
import pandas as pd
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
db = cx_Oracle.connect("scott","a123456","192.168.2.1:1521/orcl")
cursor = db.cursor()
df1 = pd.read_sql("select * from emp where deptno=20",db)
display(df1)
df2 = pd.read_sql("select * from emp where deptno=30",db)
display(df2)

結(jié)果如下:

注意:由于其他操作和python操作MySQL類似,這里就不再贅述,你們可以自行下去嘗試。

以上就是python實現(xiàn)與Oracle數(shù)據(jù)庫交互操作示例的詳細內(nèi)容,更多關(guān)于python與Oracle數(shù)據(jù)庫交互操作的資料請關(guān)注本站其它相關(guān)文章!

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部