我正在开展一个项目,要求我从SAP HANA数据库中获取数据。我使用SAP Cloud Connector和PyHDB来完成这项工作。我执行我的select语句并获取结果数据。其中一个字段是TEXT类型,包含大型文章。在迭代每一行时,我需要以某种方式将TEXT字段中的数据转换为字符串。但是我只能获得前1024个字符。存储TEXT的对象似乎是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
我需要将整个文本放入字符串然后打印出来。谢谢。
答案 0 :(得分:0)
根据docs,您需要在返回的对象上调用.read()
,传入您想要获得的字节数。这不是一个非常友好的界面,但我想如果你输入的数字肯定比你的所有对象都要大,那么你就可以得到所有东西。或者你可以做一个小循环,用更大的值迭代,直到你拥有它 - 当.getvalue()
返回的字符串长度确实增加时。