解決python通過(guò)cx_Oracle模塊連接Oracle亂碼的問(wèn)題
用python連接Oracle是總是亂碼,最有可能的是oracle客戶端的字符編碼設(shè)置不對(duì)。
本人是在進(jìn)行數(shù)據(jù)插入的時(shí)候總是報(bào)關(guān)鍵字"From"不存在,打印插入的Sql在pl/sql中進(jìn)行插入,沒(méi)有問(wèn)題。所以,后來(lái)從字符集編碼上去考慮和解決問(wèn)題。
編寫的python腳本中需要加入:
import os os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
這樣可以保證select出來(lái)的中文顯示沒(méi)有問(wèn)題。
要能夠正常的insert和update中文,還需要指定python源文件的字符集密碼和oracle一致。
# -*- coding: utf-8 -*-
示例:
# -*- coding: utf-8 -*- import os os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' #或者os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.AL32UTF8' import cx_Oracle db = cx_Oracle.connect(username/passwd@host:port/sevicename) cursor = db.cursor() #其他操作 db.commit() db.close()
客戶端的NLS_LANG設(shè)置及編碼轉(zhuǎn)換
在Oracle客戶端向服務(wù)器端提交SQL語(yǔ)句時(shí),Oracle客戶端根據(jù)NLS_LANG和數(shù)據(jù)庫(kù)字符集,對(duì)從應(yīng)用程序接傳送過(guò)來(lái)的字符串編碼進(jìn)行轉(zhuǎn)換處理。如果NLS_LANG與數(shù)據(jù)庫(kù)字符集相同,不作轉(zhuǎn)換,否則要轉(zhuǎn)換成數(shù)據(jù)庫(kù)字符集并傳送到服務(wù)器。服務(wù)器在接收到字符串編碼之后,對(duì)于普通的CHAR或VARCHAR2類型,直接存儲(chǔ);對(duì)于NCHAR或NVARCHAR2類型,服務(wù)器端將其轉(zhuǎn)換為國(guó)家字符集再存儲(chǔ)。
以上這篇解決python通過(guò)cx_Oracle模塊連接Oracle亂碼的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python+wxauto實(shí)現(xiàn)微信自動(dòng)化操作
在眾多自動(dòng)化工具中,Python的wxauto庫(kù)以其強(qiáng)大的功能和簡(jiǎn)單易用的特點(diǎn),為我們打開(kāi)了微信自動(dòng)化操作的大門,下面我們就來(lái)看看它的具體操作吧2025-02-02
pyqt5教程QGraphicsScene及QGraphicsView使用基礎(chǔ)
這篇文章主要為大家介紹了pyqt5教程中QGraphicsScene及QGraphicsView使用基礎(chǔ),有序要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10
Python+OpenCV實(shí)現(xiàn)邊緣檢測(cè)與角點(diǎn)檢測(cè)詳解
這篇文章主要為大家詳細(xì)介紹了如何通過(guò)Python+OpenCV實(shí)現(xiàn)邊緣檢測(cè)與角點(diǎn)檢測(cè),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python與OpenCV有一定的幫助,需要的可以參考一下2023-02-02
Python替換Excel表格中的空值或指定值的實(shí)現(xiàn)
本文介紹了使用Python的pandas庫(kù)結(jié)合openpyxl來(lái)批量替換Excel表格中的空值或指定值,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12
Linux上Miniconda的安裝的實(shí)現(xiàn)步驟
Miniconda是一個(gè)輕量級(jí)、免費(fèi)且開(kāi)源的跨平臺(tái)軟件包管理系統(tǒng),本文主要介紹了Linux上Miniconda的安裝的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
python KNN算法實(shí)現(xiàn)鳶尾花數(shù)據(jù)集分類
這篇文章主要介紹了python KNN算法實(shí)現(xiàn)鳶尾花數(shù)據(jù)集分類,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
聊聊pytorch測(cè)試的時(shí)候?yàn)楹我由蟤odel.eval()
這篇文章主要介紹了聊聊pytorch測(cè)試的時(shí)候?yàn)楹我由蟤odel.eval()的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
使用Python實(shí)現(xiàn)圖片轉(zhuǎn)ICO格式
這篇文章主要為大家詳細(xì)介紹了如何使用Python編寫一個(gè)基于PyQt5的用于將圖像文件轉(zhuǎn)換為ICO格式GUI應(yīng)用程序,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-01-01

