在 Maximo 中使用 DBShortcut 在 Python 中运行 jdbc 查询 - 获取 unicode 错误 - BIRT 不会收到错误,因此如何处理错误



我正在运行一个jdbc查询,并使用结果集检索列值。我的输出目标是csv。我通过自动化脚本在Maximo中使用Jython脚本。我注意到,我经常在将行写出来时出错,并且在输出的中间,我从错误点得到丢失或截断的值。错误基本上如下:

BMXAA7837E -发生了一个错误,阻止BIALOCHIERREP启动点的BIALOCHIERREP脚本运行。UnicodeEncodeError: 'ascii'编解码器无法编码位置16的字符u'xa0':序号不在224行的范围(128)内psdi.util.MXApplicationException: BMXAA7837E -发生了一个错误,阻止BIALOCHIERREP启动点的BIALOCHIERREP脚本运行。

  • 如果我看到这个错误
  • ,那么从数据库传入的一些数据不是UTF-8似乎是合乎逻辑的
  • 我知道其他进程,如BIRT能够读取这些非常相同的数据,并得到'错误'

那么,是否有一种推荐的方法可以通过此方法或确定源数据库中的数据是好是坏?我目前有点沉浸在试图找到使用调试语句的坏数据。

既然你直接对数据库运行SQL,我会检查你的数据库是否有cast()convert()函数,你可以调用它来为你转换为ascii。