解决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实现问号表达式(?)的方法
Nov 27 Python
python实现跨文件全局变量的方法
Jul 07 Python
Scrapy-redis爬虫分布式爬取的分析和实现
Feb 07 Python
Python中 map()函数的用法详解
Jul 10 Python
关于Python 的简单栅格图像边界提取方法
Jul 05 Python
Python爬虫抓取技术的一些经验
Jul 12 Python
解决Python中pandas读取*.csv文件出现编码问题
Jul 12 Python
python 实现读取csv数据,分类求和 再写进 csv
May 18 Python
Python xmltodict模块安装及代码实例
Oct 05 Python
详解Python流程控制语句
Oct 28 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
Dec 16 Python
python基础之模块的导入
Oct 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
C# Assembly类访问程序集信息
2009/06/13 PHP
比较时间段一与时间段二是否有交集的php函数
2011/05/31 PHP
PHP删除非空目录的函数代码小结
2013/02/28 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
手把手编写PHP框架 深入了解MVC运行流程
2016/09/19 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
2018/03/12 PHP
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
jquery 单击li防止重复加载的实现代码
2010/12/24 Javascript
imgAreaSelect 中文文档帮助说明
2011/10/08 Javascript
jQuery下的动画处理总结
2013/10/10 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
jQuery使用之处理页面元素用法实例
2015/01/19 Javascript
js时间控件只显示年月
2017/01/08 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
2017/06/04 Javascript
AngularJS实现的JSONP跨域访问数据传输功能详解
2017/07/20 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
Vue表单类的父子组件数据传递示例
2018/05/03 Javascript
解决LayUI数据表格复选框不居中显示的问题
2019/09/25 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
Python StringIO模块实现在内存缓冲区中读写数据
2015/04/08 Python
Python实现一个简单的验证码程序
2017/11/03 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
使用PM2+nginx部署python项目的方法示例
2018/11/07 Python
Pyqt助手安装PyQt5帮助文档过程图解
2020/11/20 Python
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
2018/08/28 HTML / CSS
Kenneth Cole官网:纽约时尚优雅品牌
2016/11/14 全球购物
社团文化节邀请函
2014/01/10 职场文书
秋季运动会表扬稿
2014/01/16 职场文书
回门宴父母答谢词
2014/01/26 职场文书
联欢晚会主持词
2014/03/25 职场文书
2014年营业员工作总结
2014/11/18 职场文书
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python