Чтение типа TEXT из SAP HANA в python

Я работаю над проектом, который требует от меня получения данных из базы данных SAP HANA. Для работы я использовал SAP Cloud Connector и PyHDB. Я выполняю свой оператор выбора и получаю данные результата. Одно из полей имеет тип TEXT и содержит большие статьи. При повторении каждой строки мне нужно каким-то образом получить данные из поля TEXT в строку. Однако я могу получить только первые 1024 символа. Объект, в котором хранится ТЕКСТ, имеет тип StringIO. Как я могу прочитать все текстовые данные, а не только первые 1024 символа?

import pyhdb

connection_from = pyhdb.connect(
host="localhost",
port=00000,
user="user",
password="password"
)
cursor_from = connection_from.cursor()

cursor_from.execute('SELECT * FROM SCHEMA.TABLE')
results= cursor_from.fetchall()

for row in results:
    text = row[2].data.getvalue()

connection_from.close()

Вот как выглядит объект: NClob

Мне нужно получить весь текст в строку, а затем распечатать его. Спасибо.


person spdasilv    schedule 08.12.2017    source источник
comment
Не могли бы вы вместо этого опубликовать данные здесь или в сути? gist.github.com По какой-то причине я не могу получить доступ к imgur.   -  person spookylukey    schedule 09.12.2017


Ответы (1)


Согласно документам, вам нужно вызвать .read() для возвращаемого объекта. , передав количество байтов, которое вы хотите получить. Это не очень удобный интерфейс, но я думаю, что если вы передадите число, которое определенно больше, чем все ваши объекты, вы получите все. Или вы можете сделать небольшой цикл, который повторяется с большими значениями, пока у вас не будет всего - когда длина строки, возвращаемой .getvalue(), действительно увеличивается.

person spookylukey    schedule 09.12.2017