python3在oracle插入中文編碼問題

正常讀取

  • 讀取解決中文亂碼,修改一下變量保持和oracle一致
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
  • 查看oracle的NLS_LANG
select * from V$NLS_PARAMETERS;
select userenv(language) from dual;

正常insert和update

  • 需要修改os.py源文件:C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\Lib
  • 把字符集變量加進去聲明的下面就可以了
    在這裏插入圖片描述

修改oracle編碼的方法

sqlplus / as sysdba

方法一

UPDATE PROPS$ SET VALUE$='ZHS16GBK' WHERE NAME='NLS_CHARACTERSET';
shutdown immediate;
startup;

方法二

shutdown immediate;
startup mount;
alter session set sql_trace=true;
alter system enable restricted session;
alter system set job_queue_processes=0;
alter system set aq_tm_processes=0;
alter database open;
alter database character set internal_use utf8;
shutdown immediate;
startup;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章