解决python通过cx_Oracle模块连接Oracle乱码的问题


Posted in Python onOctober 18, 2018

用python连接Oracle是总是乱码,最有可能的是oracle客户端的字符编码设置不对。

本人是在进行数据插入的时候总是报关键字"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设置及编码转换

在Oracle客户端向服务器端提交SQL语句时,Oracle客户端根据NLS_LANG和数据库字符集,对从应用程序接传送过来的字符串编码进行转换处理。如果NLS_LANG与数据库字符集相同,不作转换,否则要转换成数据库字符集并传送到服务器。服务器在接收到字符串编码之后,对于普通的CHAR或VARCHAR2类型,直接存储;对于NCHAR或NVARCHAR2类型,服务器端将其转换为国家字符集再存储。

以上这篇解决python通过cx_Oracle模块连接Oracle乱码的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python sqlobject(mysql)中文乱码解决方法
Nov 14 Python
python实现2014火车票查询代码分享
Jan 10 Python
python微信跳一跳系列之色块轮廓定位棋盘
Feb 26 Python
使用Py2Exe for Python3创建自己的exe程序示例
Oct 31 Python
Python 日期区间处理 (本周本月上周上月...)
Aug 08 Python
Python测试模块doctest使用解析
Aug 10 Python
python绘制随机网络图形示例
Nov 21 Python
Pandas实现dataframe和np.array的相互转换
Nov 30 Python
python global和nonlocal用法解析
Feb 03 Python
python中关于数据类型的学习笔记
Jul 19 Python
scrapy头部修改的方法详解
Dec 06 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
Jan 29 Python
解决python3捕获cx_oracle抛出的异常错误问题
Oct 18 #Python
python 自定义异常和异常捕捉的方法
Oct 18 #Python
详解Python发送email的三种方式
Oct 18 #Python
python try except 捕获所有异常的实例
Oct 18 #Python
对Python中Iterator和Iterable的区别详解
Oct 18 #Python
对python中的iter()函数与next()函数详解
Oct 18 #Python
对Python 3.2 迭代器的next函数实例讲解
Oct 18 #Python
You might like
PHP安全防范技巧分享
2011/11/03 PHP
PHP的APC模块实现上传进度条
2015/10/27 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
2017/07/18 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
关于 byval 与 byref 的区别分析总结
2007/10/08 Javascript
javascript 检测浏览器类型和版本的代码
2009/09/15 Javascript
js解析与序列化json数据(三)json的解析探讨
2013/02/01 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
2013/09/21 Javascript
Jquery日期选择datepicker插件用法实例分析
2015/06/08 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
vue修改vue项目运行端口号的方法
2017/08/04 Javascript
JavaScript面向对象精要(上部)
2017/09/12 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
2018/09/25 Javascript
Node.js的进程管理的深入理解
2019/01/09 Javascript
js实现图片局部放大效果详解
2019/03/18 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
js canvas实现星空连线背景特效
2019/11/01 Javascript
[02:32]DOTA2完美大师赛场馆静安体育中心观赛全攻略
2017/11/08 DOTA
采用Psyco实现python执行速度提高到与编译语言一样的水平
2014/10/11 Python
python实现在windows下操作word的方法
2015/04/28 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
2020/03/14 Python
Python中格式化字符串的四种实现
2020/05/26 Python
新学期班主任寄语
2014/01/18 职场文书
个人职业及收入证明
2014/10/13 职场文书
乡镇安全生产月活动总结
2015/05/08 职场文书
入党申请书怎么写?
2019/06/21 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
2021/03/29 PHP
python 实现定时任务的四种方式
2021/04/01 Python
MySQL基础(一)
2021/04/05 MySQL
Nginx 反向代理解决跨域问题多种情况分析
2022/01/18 Servers
Python使用MapReduce进行简单的销售统计
2022/04/22 Python