解决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 2与Python 3版本和编码的对比
Feb 14 Python
详解Python nose单元测试框架的安装与使用
Dec 20 Python
Python3处理HTTP请求的实例
May 10 Python
基于python中__add__函数的用法
Nov 25 Python
pytorch 实现模型不同层设置不同的学习率方式
Jan 06 Python
Python中itertools的用法详解
Feb 07 Python
详解Django3中直接添加Websockets方式
Feb 12 Python
python3将变量写入SQL语句的实现方式
Mar 02 Python
浅谈Python中文件夹和python package包的区别
Jun 01 Python
python 基于UDP协议套接字通信的实现
Jan 22 Python
python 实现mysql自动增删分区的方法
Apr 01 Python
自己搭建resnet18网络并加载torchvision自带权重的操作
May 13 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 操作excel文件的方法小结
2009/12/31 PHP
提高PHP编程效率的方法
2013/11/07 PHP
PHP中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
PHP和javascript常用正则表达式及用法实例
2014/07/01 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
JQuery中each()的使用方法说明
2010/08/19 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
2013/04/11 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
event对象获取方法总结在google浏览器下测试
2013/11/03 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
2013/11/11 Javascript
window.location.href IE下跳转失效的解决方法
2014/03/27 Javascript
一些老手都不一定知道的JavaScript技巧
2014/05/06 Javascript
jQuery进行组件开发完整实例
2015/12/15 Javascript
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
javascript之IE版本检测超简单方法
2016/08/20 Javascript
Vue实现typeahead组件功能(非常靠谱)
2017/08/26 Javascript
Webpack框架核心概念(知识点整理)
2017/12/22 Javascript
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
JS运动特效之完美运动框架实例分析
2018/01/24 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
2019/01/09 Javascript
微信小程序返回上一页传参并刷新过程解析
2019/12/13 Javascript
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
python实现简易通讯录修改版
2018/03/13 Python
Python实现购物车购物小程序
2018/04/18 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
Python logging模块进行封装实现原理解析
2020/08/07 Python
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
入股合作协议书
2014/10/12 职场文书
2015年重阳节主持词
2015/07/04 职场文书
交通安全温馨提示语
2015/07/14 职场文书
干部考核工作总结
2015/08/12 职场文书