解决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脚本
Apr 05 Python
python判断、获取一张图片主色调的2个实例
Apr 10 Python
Python实现的一个简单LRU cache
Sep 26 Python
Python实现获取操作系统版本信息方法
Apr 08 Python
在Python的Django框架中生成CSV文件的方法
Jul 22 Python
13个最常用的Python深度学习库介绍
Oct 28 Python
解决PyCharm同目录下导入模块会报错的问题
Oct 13 Python
pytorch 调整某一维度数据顺序的方法
Dec 08 Python
PyQt5响应回车事件的方法
Jun 25 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
Jun 11 Python
django 模型字段设置默认值代码
Jul 15 Python
PyCharm 安装与使用配置教程(windows,mac通用)
May 12 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版(5)
2006/10/09 PHP
聊天室php&mysql(一)
2006/10/09 PHP
php中的一个中文字符串截取函数
2007/02/14 PHP
php下mysql数据库操作类(改自discuz)
2010/07/03 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
PHP遍历二维数组的代码
2011/04/22 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
基于ThinkPHP删除目录及目录文件函数
2020/10/28 PHP
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
2010/07/26 Javascript
浅析js中取绝对值的2种方法
2013/07/09 Javascript
提高NodeJS中SSL服务的性能
2014/07/15 NodeJs
BootStrap table表格插件自适应固定表头(超好用)
2016/08/24 Javascript
js实现开启密码大写提示
2016/12/21 Javascript
详解js中==与===的区别
2017/01/08 Javascript
jQuery表单设置值的方法
2017/06/30 jQuery
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
一文快速了解JQuery中的AJAX
2019/05/31 jQuery
微信小程序中插入激励视频广告并获取收益(实例代码)
2019/12/06 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
Python中实现字符串类型与字典类型相互转换的方法
2014/08/18 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
浅析PEP572: 海象运算符
2019/10/15 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
django orm模块中的 is_delete用法
2020/05/20 Python
python 基于opencv去除图片阴影
2021/01/26 Python
美国第一个网上卖鞋零售商:OnlineShoes.com
2017/09/24 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
计算机专业毕业生自荐信范文
2014/03/06 职场文书
创优争先心得体会
2014/09/11 职场文书
忠诚奉献演讲稿
2014/09/12 职场文书
2014年安全工作总结范文
2014/11/13 职场文书
电子商务专业求职信范文
2015/03/19 职场文书
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
2021/11/11 Python