解决python通过cx_Oracle模块连接Oracle乱码的问题
程序员文章站
2022-05-23 18:05:07
用python连接oracle是总是乱码,最有可能的是oracle客户端的字符编码设置不对。
本人是在进行数据插入的时候总是报关键字"from"不存在,打印插入的sql在...
用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 Markdown模块乱码的问题
-
解决python通过cx_Oracle模块连接Oracle乱码的问题
-
解决python3.6用cx_Oracle库连接Oracle的问题
-
C#连接ORACLE出现乱码问题的解决方法
-
解决python3捕获cx_oracle抛出的异常错误问题
-
解决python通过cx_Oracle模块连接Oracle乱码的问题
-
Python-解决Cx_Oracle查询时UnicodeDecodeError的问题
-
Python中cx_Oracle模块安装遇到的问题与解决方法
-
Python-解决Cx_Oracle查询时UnicodeDecodeError的问题
-
python安装cx_Oracle模块常见问题与解决方法