解决python通过cx_Oracle模块连接Oracle乱码的问题
作者:BabyFish13 时间:2023-04-30 23:25:45
用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类型,服务器端将其转换为国家字符集再存储。
来源:https://blog.csdn.net/BabyFish13/article/details/68944374
标签:python,cx,Oracle,乱码
0
投稿
猜你喜欢
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
2021-05-26 23:15:11
三种在ES6中将非数组转换为数组的方法详情
2024-04-16 08:55:06
python读取csv文件指定行的2种方法详解
2022-06-06 13:35:24
列表模块是否需要标题
2009-06-25 14:11:00
Golang巧用defer进行错误处理的方法
2023-08-05 03:21:13
CSS阴影详解
2009-12-04 18:31:00
python中for循环的多种使用实例
2021-12-17 19:08:14
详解Linux下安装php环境并且配置Nginx支持php-fpm模块
2023-11-11 02:02:50
小程序开发之uniapp引入iconfont图标以及使用方式
2024-04-22 13:09:05
JavaScript生成二维码图片小结
2024-05-02 16:13:16
在MySQL数据库中如何来复位根用户的密码
2008-12-03 16:57:00
简单实例解释Oracle分页查询
2023-07-16 00:54:03
Python3.5集合及其常见运算实例详解
2023-04-25 04:04:33
sqlserver 触发器教程
2024-01-15 08:38:17
Mysql 文件配置解析
2024-01-26 10:01:54
Ubuntu 16.04/18.04 安装Pycharm及Ipython的教程
2023-11-03 03:49:29
删除python pandas.DataFrame 的多重index实例
2022-11-10 17:25:12
vue中对虚拟dom的理解知识点总结
2024-05-05 09:23:54
一篇文章带你了解Python之Selenium自动化爬虫
2023-12-15 14:30:53
详解Python 函数如何重载?
2021-04-11 04:48:30