解决python通过cx_Oracle模块连接Oracle乱码的问题

 更新时间£º2018年10月18日 14:50:33   作者£ºBabyFish13   我要评论

今天小编就为大家分享一篇解决python通过cx_Oracle模块连接Oracle乱码的问题£¬具有很好的参考价值£¬希望对大家有所帮助¡£一起跟随小编过来看看吧

用python连接Oracle是总是乱码£¬最有可能的是oracle客户端的字符编码设置不对¡£

本人是在进行数据插入的时候总是报关键字"From"不存在£¬打印插入的Sql在pl/sql中进行插入£¬没有问题¡£所以£¬后来从字符集编码上去考虑和解决问题¡£

编写的python脚本中需要加入£º

import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

这样可以保证select出来的中文显示没有问题¡£

要能够正常的insert和update中?#27169;?#36824;需要指定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/[email protected]: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的Django框架中获取单个对象数据的简单方法

    在Python的Django框架中获取单个对象数据的简单方法

    这篇文章主要介绍了在Python的Django框架中获取单个对象数据的简单方法,Django为数据的操作提供了诸多方便的功能,需要的朋友可以参考下
    2015-07-07
  • Python迭代用法实例教程

    Python迭代用法实例教程

    这篇文章主要介绍了Python迭代用法,包括了迭代的定义及具体用法,是一个非常实用的技巧,需要的朋友可以参考下
    2014-09-09
  • Python彩色化Linux的命令行终端界面的代码实例分享

    Python彩色化Linux的命令行终端界面的代码实例分享

    美化Linux的terminal终端显示的方法多种多样,这里我们给出一个利用Python彩色化Linux的命令行终端界面的代码实例分享,包括一个Linux下简便执行Python程序的方法,需要的朋友可以参考下
    2016-07-07
  • 最新评论

    常用在线小工具

    ÁÉÄþ35Ñ¡7¿ª½±½á¹û