已解决
我必须设置环境变量NLS_LANG(oracle)喜欢这个:
os.environ["NLS_LANG"] = nls_lang
在我的例子中,nls_lang是GERMAN_GERMANY.AL32UTF8来获取所有德语变音符号和特殊字符。
我想从oracle数据库查询一些表数据。我使用以下部分连接到数据库:
self.engine = create_engine('{}://{}:{}@{}:{}/{}'.format(type,
user,
password,
server,
port,
dbname),
echo=log,
pool_size=4000,
max_overflow=400)
要选择所需的列,我正在使用黑名单或白名单功能:
tmp_all = None
# get session
session = self.Session()
# Blacklist
if bwtyp == "B":
tmp_all = session.query(*[c for c in tableo.c if not bwlist.is_column(schema, tabname, c.name)])
# Whitelist
if bwtyp == "W":
tmp_all = session.query(*[c for c in tableo.c if bwlist.is_column(schema, tabname, c.name)])
# close session
session.close()
return tmp_all
现在我像这样迭代我的结果集:
for row in tabledata.yield_per(buffersize).enable_eagerloads(False):
结果集几乎没问题,但区别在于:
[来自数据库的charset的截图] [3]
我做了很多,把charset放到了连接字符串等但没有任何效果。 也许你可以帮忙。非常感谢提前。 JR