Алхимия SQL с оракулом: преобразование столбца переполняет тип данных integer - PullRequest
0 голосов
/ 24 мая 2018

Я извлекаю данные из базы данных Oracle с Python 2.7 64 бит.Существует поле числового типа с 35 цифрами: 1200000000000000000000000000005151

Если я хочу прочитать это поле с помощью SQL Alchemy, я получаю следующую ошибку:

File "D:\Produkte\CoCo\Sourcen\ConsultingConnector\src\ais.py", line 253, in tabledata2table
    for row in tabledata.yield_per(buffersize).enable_eagerloads(False):
  File "C:\Python27\lib\site-packages\sqlalchemy\orm\loading.py", line 98, in instances
    util.raise_from_cause(err)
  File "C:\Python27\lib\site-packages\sqlalchemy\util\compat.py", line 203, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "C:\Python27\lib\site-packages\sqlalchemy\orm\loading.py", line 71, in instances
    fetch = cursor.fetchmany(query._yield_per)
  File "C:\Python27\lib\site-packages\sqlalchemy\engine\result.py", line 1166, in fetchmany
    self.cursor, self.context)
  File "C:\Python27\lib\site-packages\sqlalchemy\engine\base.py", line 1413, in _handle_dbapi_exception
    exc_info
  File "C:\Python27\lib\site-packages\sqlalchemy\util\compat.py", line 203, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "C:\Python27\lib\site-packages\sqlalchemy\engine\result.py", line 1159, in fetchmany
    l = self.process_rows(self._fetchmany_impl(size))
  File "C:\Python27\lib\site-packages\sqlalchemy\engine\result.py", line 1076, in _fetchmany_impl
    return self.cursor.fetchmany(size)
sqlalchemy.exc.DatabaseError: (cx_Oracle.DatabaseError) ORA-01455: converting column overflows integer datatype (Background on this error at: http://sqlalche.me/e/4xp6)

Кажется, что SQL Alchemyпытается привести в int, хотя это долго.У вас есть идеи, как я могу решить проблему или что-то вроде обходного пути?

Заранее спасибо, Jassin

1 Ответ

0 голосов
/ 16 ноября 2018

Я только что получил ту же проблему и нашел решение, преобразовав тип данных в символ.например, "выбрать to_char (ID)".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...