Ошибка в SQL-запросе Interbase / Firebird с питоном

У меня есть ошибка в запросе sql, который я делаю к базе данных firebird / interbase с python. Это приводит меня к ошибке:

     for rec in cur.fetchall():
kinterbasdb.ProgrammingError: (-802, 'fetch: \n  arithmetic exception, numeric o
verflow, or string truncation\n  Cannot transliterate character between characte
r sets')

Я понимаю, что это проблема символов, потому что ошибка заключается в извлечении данных SELECT ciudad.descripcion FROM clientes, это содержит, например, Cordoba V. Allende. Я думаю, что ошибка в . данных, поскольку при извлечении запроса из python cursor.execute(QUERY) выполняются два типа данных: одна текстовая строка и другой специальный символ. Я использовал несколько функций, но у меня не было удовлетворительных результатов, например:

CAST(ciudad.descripcion AS varchar(40))

или

CAST(ciudad.descripcion AS varchar(40) character set UTF-8)

Я получаю эту ошибку:

    cur.execute(SELECT)
kinterbasdb.ProgrammingError: (-104, 'isc_dsql_prepare: \n  Dynamic SQL Error\n
 SQL error code = -104\n  Token unknown - line 1, column 80\n  -')

Привет и заранее спасибо!

1
задан 01.04.2016, 17:01
1 ответ

Ошибка была проще, чем я думал:

con = kinterbasdb.connect(dsn=rute,user='user', password='password', dialect=3,charset='DOS437')

То, что вызывало ошибку, было dialect=3 (я не схватил 1) и код Американский стандартный код обмена информацией.

1
ответ дан 24.11.2019, 14:42

Теги

Похожие вопросы