解决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
  • asp之家 网络编程 m.aspxhome.com