解决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 相关文章推荐
2款Python内存检测工具介绍和使用方法
Jun 01 Python
Python的装饰器模式与面向切面编程详解
Jun 21 Python
Python中的time模块与datetime模块用法总结
Jun 30 Python
Python与Java间Socket通信实例代码
Mar 06 Python
TensorFlow损失函数专题详解
Apr 26 Python
解决python升级引起的pip执行错误的问题
Jun 12 Python
python中从str中提取元素到list以及将list转换为str的方法
Jun 26 Python
Python with用法:自动关闭文件进程
Jul 10 Python
python爬取网易云音乐热歌榜实例代码
Aug 07 Python
python图片合成的示例
Nov 09 Python
python selenium 获取接口数据的实现
Dec 07 Python
python中子类与父类的关系基础知识点
Feb 02 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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
两千行代码的PHP学习笔记汇总
2014/10/05 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
把JS与CSS写在同一个文件里的书写方法
2007/06/02 Javascript
juqery 学习之四 筛选查找
2010/11/30 Javascript
js中escape对应的C#解码函数 UrlDecode
2012/12/16 Javascript
js截取小数点后几位的写法
2013/11/14 Javascript
javascript操作referer详细解析
2014/03/10 Javascript
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
js实现可键盘控制的简单抽奖程序
2016/07/13 Javascript
BootStrap的table表头固定tbody滚动的实例代码
2016/08/24 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
JavaScript实现换肤功能
2017/09/15 Javascript
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
Python的网络编程库Gevent的安装及使用技巧
2016/06/24 Python
基于python select.select模块通信的实例讲解
2017/09/21 Python
Python基于分水岭算法解决走迷宫游戏示例
2017/09/26 Python
python实现定时发送qq消息
2019/01/18 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
BISSELL官网:北美吸尘器第一品牌
2019/03/14 全球购物
美国木工工具和用品商店:Woodcraft
2019/10/30 全球购物
英语商务邀请函范文
2014/01/16 职场文书
安全生产汇报材料
2014/02/17 职场文书
学习标兵获奖感言
2014/02/20 职场文书
企业职业病防治方案
2014/05/29 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
出纳2015年度工作总结范文
2015/10/14 职场文书
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python
python超详细实现完整学生成绩管理系统
2022/03/17 Python