Мы пытаемся читать данные из таблиц 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()
Вопрос : Как читать данные как есть?