Как читать LOB-данные из таблиц HANA с помощью SQLAlchemy? - PullRequest
0 голосов
/ 05 августа 2020

Мы пытаемся читать данные из таблиц HANA с помощью SQLAlchemy, и код работает нормально для таблиц, в которых нет столбцов с типами данных LOB (например, CLOB, NCLOB и т. Д. c). Рабочий код:

from sqlalchemy import create_engine, MetaData
engine = create_engine('hana://{0}:{1}@{2}:{3}'.format(username,password,host,port))
Metadata = MetaData(engine, schema=schema)
Metadata.reflect(bind=engine)

tableORM = Metadata.tables
#table FORMULA has CLOB field
table  = tableORM[schema + '.'+tableName]

data = engine.execute(table.select()).fetchall()

При попытке чтения таблицы со столбцами типов данных LOB с тем же рабочим кодом выполнение останавливается при чтении. Если LOB-поля явно переданы в NVARCHAR, чтение работает.

columns = [table.c.id, table.c.formula_name, table.c.description,
           cast(table.c.expression, sqlalchemy.NVARCHAR)]

data = engine.execute(table.select().with_only_columns(columns)).fetchall()

Вопрос : Как читать данные как есть?

...