解決python通過cx_Oracle模塊連接Oracle亂碼的問題
用python連接Oracle是總是亂碼,最有可能的是oracle客戶端的字符編碼設置不對。
本人是在進行數(shù)據(jù)插入的時候總是報關(guān)鍵字"From"不存在,打印插入的Sql在pl/sql中進行插入,沒有問題。所以,后來從字符集編碼上去考慮和解決問題。
編寫的python腳本中需要加入:
import os os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
這樣可以保證select出來的中文顯示沒有問題。
要能夠正常的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設置及編碼轉(zhuǎn)換
在Oracle客戶端向服務器端提交SQL語句時,Oracle客戶端根據(jù)NLS_LANG和數(shù)據(jù)庫字符集,對從應用程序接傳送過來的字符串編碼進行轉(zhuǎn)換處理。如果NLS_LANG與數(shù)據(jù)庫字符集相同,不作轉(zhuǎn)換,否則要轉(zhuǎn)換成數(shù)據(jù)庫字符集并傳送到服務器。服務器在接收到字符串編碼之后,對于普通的CHAR或VARCHAR2類型,直接存儲;對于NCHAR或NVARCHAR2類型,服務器端將其轉(zhuǎn)換為國家字符集再存儲。
以上這篇解決python通過cx_Oracle模塊連接Oracle亂碼的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
pyqt5教程QGraphicsScene及QGraphicsView使用基礎(chǔ)
這篇文章主要為大家介紹了pyqt5教程中QGraphicsScene及QGraphicsView使用基礎(chǔ),有序要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10Python+OpenCV實現(xiàn)邊緣檢測與角點檢測詳解
這篇文章主要為大家詳細介紹了如何通過Python+OpenCV實現(xiàn)邊緣檢測與角點檢測,文中的示例代碼講解詳細,對我們學習Python與OpenCV有一定的幫助,需要的可以參考一下2023-02-02Python替換Excel表格中的空值或指定值的實現(xiàn)
本文介紹了使用Python的pandas庫結(jié)合openpyxl來批量替換Excel表格中的空值或指定值,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-12-12python KNN算法實現(xiàn)鳶尾花數(shù)據(jù)集分類
這篇文章主要介紹了python KNN算法實現(xiàn)鳶尾花數(shù)據(jù)集分類,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-10-10聊聊pytorch測試的時候為何要加上model.eval()
這篇文章主要介紹了聊聊pytorch測試的時候為何要加上model.eval()的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05使用Python實現(xiàn)圖片轉(zhuǎn)ICO格式
這篇文章主要為大家詳細介紹了如何使用Python編寫一個基于PyQt5的用于將圖像文件轉(zhuǎn)換為ICO格式GUI應用程序,感興趣的小伙伴可以跟隨小編一起學習一下2025-01-01