cx_Oracle でOracle接続

  • 3
    Like
  • 0
    Comment

開発環境がWindowsで、Oracleデータベースの文字コードはSJIS。

cx_Oracleを使用して、Oracle接続をしてみたが、どうしても出力結果が文字化けしてしまう。
そこで、下記にて環境変数を指定してみた。

os.environ["NLS_LANG"] = "JAPANESE_JAPAN.JA16SJISTILDE"
oracle_connect.py
import cx_Oracle
import os

os.environ["NLS_LANG"] = "JAPANESE_JAPAN.JA16SJISTILDE"
db_user = 'user'
db_pass = 'xxxx'
db_host = '(DESCRIPTION=(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SID = HOGE)))'
con = cx_Oracle.connect(db_user, db_pass, db_host)

cur = con.cursor()
sql = 'select member_id, member_name from members order by 1'
cur.execute(sql)
rows = cur.fetchall()
for row in rows:
    member_id = row[0]
    member_name = row[1]
    print( member_name)

うまくいった。