用 python 将数据插入到 Oracle 数据库 一直报这个错,(Linux运行)
检查编码各项都没有发现问题,但是讲 赋值之后的sql 拿出来插入是可以成功的。
网上查了很多解决方案都是:
- import sys
- reload(sys)
- sys.setdefaultencoding('utf8')
但是我发现不可行,并且Python3好像已经不支持了。
经过一番折腾最后找到 解决方案:
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
原因是Oracle数据 字符集是AL32UTF8。
所以编写Python脚本中需要加入这个东东,这样才能保证select出来的中文显示是没有问题的。所以想正常的insert和update中文,就需要制定Python源文件的字符集密码和Oracle是一致的。