添加如下两句
import os
os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.ZHS16GBK'
注意:红体字部分因人而异
NLS_LANG的查询方式:
oracle服务所在机器上执行:
linux:env|grep NLS_LANG
windows:echo %NLS_LANG%
测试demo:
import os
os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.ZHS16GBK'
from sqlalchemy import create_engine
import cx_Oracle
engine=create_engine("oracle+cx_oracle://USERNAME:PASSWD@IP:PORT/ORCL")
sql_string="""select 1 from dual"""
df=pd.read_sql(sql_string,con=engine)
print(df)
PS:题外话,几年前的印象,上述设置的NLS_LANG不对也会导致乱码。