pythonを解決します。cx_を通して。Oracleモジュール接続Oracle文字化けの問題
Oracleをpythonで接続すると常に文字化けが発生しますが、もっとも可能なのはoracleクライアントの文字コード設定が間違っています。
本人はデータを挿入する時にいつもキーワードの「From」が存在しないので、挿入するSqlを印刷してpl/sqlの中で挿入して、問題がありません。したがって、後に文字セットのコードから問題を考慮して解決します。
作成したpythonスクリプトには追加が必要です。
正常なinsertとudate中国語ができるためには、pythonソースファイルを指定する文字セットのパスワードとoracleが一致します。
OracleクライアントがSQL文をサーバ側に提出する場合、OracleクライアントはNLS_LANGとデータベース文字セットは、アプリケーションから転送された文字列コードを変換処理します。NLS_ならLANGはデータベースの文字セットと同じです。変換しないでデータベースの文字セットに変換してサーバに転送します。サーバは文字列コードを受信した後、通常のCHARまたはVRCHARR 2タイプに対して直接記憶する。NCHARRまたはNVRCHARR 2タイプについては、サーバー側で国家文字セットに変換して記憶します。
以上の解决pythonはcx_を通してOracleモジュール接続Oracleの文字化けの問題は、小編集が皆さんに提供した内容の全部を共有することです。参考にしていただければと思います。よろしくお願いします。
本人はデータを挿入する時にいつもキーワードの「From」が存在しないので、挿入するSqlを印刷してpl/sqlの中で挿入して、問題がありません。したがって、後に文字セットのコードから問題を考慮して解決します。
作成したpythonスクリプトには追加が必要です。
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
これでselectの中国語表示に問題がないことを保証できます。正常なinsertとudate中国語ができるためには、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またはVRCHARR 2タイプに対して直接記憶する。NCHARRまたはNVRCHARR 2タイプについては、サーバー側で国家文字セットに変換して記憶します。
以上の解决pythonはcx_を通してOracleモジュール接続Oracleの文字化けの問題は、小編集が皆さんに提供した内容の全部を共有することです。参考にしていただければと思います。よろしくお願いします。