解决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 03 Python
Python 通配符删除文件的实例
Apr 24 Python
python使用xlsxwriter实现有向无环图到Excel的转换
Dec 12 Python
Python从文件中读取数据的方法讲解
Feb 14 Python
python从入门到精通 windows安装python图文教程
May 18 Python
对PyQt5中树结构的实现方法详解
Jun 17 Python
Python Django Cookie 简单用法解析
Aug 13 Python
Python OpenCV视频截取并保存实现代码
Nov 30 Python
将python依赖包打包成window下可执行文件bat方式
Dec 26 Python
python对 MySQL 数据库进行增删改查的脚本
Oct 22 Python
opencv 分类白天与夜景视频的方法
Jun 05 Python
Python anaconda安装库命令详解
Oct 16 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
怎样辨别一杯好咖啡
2021/03/03 新手入门
php 调试利器debug_print_backtrace()
2012/07/23 PHP
php无限遍历目录示例
2014/02/21 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
2014/06/19 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
php生成HTML文件的类方法
2019/10/11 PHP
让AJAX不依赖后端接口实现方案
2012/12/03 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
javascript 数组操作详解
2015/01/29 Javascript
如何改进javascript代码的性能
2015/04/02 Javascript
JavaScript简单表格编辑功能实现方法
2015/04/16 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
js+html5实现可在手机上玩的拼图游戏
2015/07/17 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
jquery实现垂直和水平菜单导航栏
2020/08/27 Javascript
angular双向绑定模拟探索
2016/12/26 Javascript
JavaScript登录验证基础教程
2017/11/01 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
Vue-router编程式导航的两种实现代码
2021/03/04 Vue.js
Python获取脚本所在目录的正确方法
2014/04/15 Python
Python中的多重装饰器
2015/04/11 Python
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
应用OpenCV和Python进行SIFT算法的实现详解
2019/08/21 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
如何估计一张表的大小(假设该表中有1万条数据)
2016/03/27 面试题
学生发电厂实习自我鉴定
2013/09/22 职场文书
大学毕业后的十年规划
2014/01/07 职场文书
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
人事部岗位职责范本
2014/03/05 职场文书
应聘教师自荐书
2014/06/16 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
保安2014年终工作总结
2014/12/06 职场文书
《假如》教学反思
2016/02/17 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书