解决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 相关文章推荐
wxPython窗口的继承机制实例分析
Sep 28 Python
Python 2与Python 3版本和编码的对比
Feb 14 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
Jan 10 Python
Python paramiko模块的使用示例
Apr 11 Python
Python json模块dumps、loads操作示例
Sep 06 Python
Python的垃圾回收机制详解
Aug 28 Python
Django实现文件上传下载功能
Oct 06 Python
pygame实现贪吃蛇游戏(上)
Oct 29 Python
python实现飞机大战小游戏
Nov 08 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
浅谈python 中的 type(), dtype(), astype()的区别
Apr 09 Python
基于python实现坦克大战游戏
Oct 27 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 分页类 扩展代码
2009/06/11 PHP
php将数据库导出成excel的方法
2010/05/07 PHP
PHP 函数学习简单小结
2010/07/08 PHP
学习php笔记 字符串处理
2010/10/19 PHP
php求正负数数组中连续元素最大值示例
2014/04/11 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
extjs render 用法介绍
2013/09/11 Javascript
jQuery中:selected选择器用法实例
2015/01/04 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
js实现checkbox全选、不选与反选的方法
2015/02/09 Javascript
JavaScript如何动态创建table表格
2020/08/02 Javascript
原生javascript上传图片带进度条【实例分享】
2017/04/06 Javascript
vue引入jq插件的实例讲解
2017/09/12 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
2018/08/17 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
[02:32]DOTA2亚洲邀请赛 VG战队巡礼
2015/02/03 DOTA
Python使用PIL模块生成随机验证码
2017/11/21 Python
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
pandas对指定列进行填充的方法
2018/04/11 Python
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
Python类的继承用法示例
2019/01/31 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
Django实现celery定时任务过程解析
2020/04/21 Python
利用CSS3动画实现圆圈由小变大向外扩散的效果实例
2018/09/10 HTML / CSS
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
 Alo Yoga官网:购买瑜伽服装
2018/06/17 全球购物
英国最大的香水商店:The Fragrance Shop
2018/07/06 全球购物
思想政治教育专业个人求职信范文
2013/12/20 职场文书
工厂仓管员岗位职责
2014/01/01 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
2015年校本培训工作总结
2015/07/24 职场文书
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
2021/05/21 PostgreSQL
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python
SQLServer权限之只开启创建表权限
2022/04/12 SQL Server
Python PIL按比例裁剪图片
2022/05/11 Python