Форум сайта python.su
Народ помогите решить проблему:
надо сказать sqlalchemy, чтобы он перекодил (в utf-16 с 1251) ошибки с базы, а не возвращал последовательность байт в эксэпшн,
типа:
(<class ‘sqlalchemy.exceptions.DatabaseError’>, DatabaseError('(DatabaseError) ORA-01400: \xed\xe5\xe2\xee\xe7\xec\xee\xe6\xed\xee \xe2\xf1\xf2\xe0\xe2\xe8\xf2\xfc NULL \xe2 (“SCOTT”.“LDAP”.“ID”)\n',), <traceback object at 0x03657210>)
можно выдергивать последовательность и перекодить вручную или NLS_LANG в utf16 ставить, но это крайние варианты.
Решение нашлось: Можно перекодить не весь тупл sys.exc_info, а отдельно sys.exc_value, который чисто содержит исключение, полученное из БД.
Отредактировано (Май 22, 2008 19:04:37)
Офлайн