解决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的Collections模块中counter结构的用法
Jul 07 Python
python的变量与赋值详细分析
Nov 08 Python
Python3 queue队列模块详细介绍
Jan 05 Python
Numpy中转置transpose、T和swapaxes的实例讲解
Apr 17 Python
如何利用Anaconda配置简单的Python环境
Jun 24 Python
pandas DataFrame创建方法的方式
Aug 02 Python
Django+zTree构建组织架构树的方法
Aug 21 Python
python全局变量引用与修改过程解析
Jan 07 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
Apr 01 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
Sep 01 Python
python 如何区分return和yield
Sep 22 Python
python re模块和正则表达式
Mar 24 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 __autoload()方法真的影响性能吗?
2012/03/30 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
JavaScript中的apply()方法和call()方法使用介绍
2012/07/25 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
jquery删除数据记录时的弹出提示效果
2014/05/06 Javascript
jQuery实现DIV层收缩展开的方法
2015/02/27 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
初识Javascript小结
2015/07/16 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
Vue.js常用指令的使用小结
2017/06/23 Javascript
JavaScript截屏功能的实现代码
2017/07/28 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
python实现批量下载新浪博客的方法
2015/06/15 Python
Python实现在线音乐播放器
2017/03/03 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
详解Matplotlib绘图之属性设置
2019/08/23 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
Django+Django-Celery+Celery的整合实战
2021/01/20 Python
美国隐形眼镜网:Major Lens
2018/02/09 全球购物
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
个人租房协议书
2014/04/09 职场文书
车辆转让协议书
2014/09/24 职场文书
债务纠纷委托书范本
2014/10/14 职场文书
教师先进个人材料
2014/12/17 职场文书
离婚协议书样本
2015/01/26 职场文书
毕业生个人自荐书
2015/03/05 职场文书
买卖合同纠纷代理词
2015/05/25 职场文书
基石观后感
2015/06/12 职场文书
品牌形象定位,全面分析
2019/07/23 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书