我使用的是 sybase ase 15 数据库。我有一个 image 类型的列(该列存储 SQL 查询),所以我必须将其转换为 varchar 才能返回文本。问题是我无法返回超过 16834 字节,并且它返回修剪后的查询。
有什么办法可以获取整个专栏吗?我目前正在 python 中使用带有 pymssql 库的脚本。
我使用的查询是
select (convert varchar(16834), convert(varbinary(16834), FIELD)) as 'SQL' from TABLE WHERE ...
我尝试将 max 改为 16834,但它返回错误,因为无法识别为变量,将其转换为 TEXT 类型,但它也不返回列的完整大小。列数据类型是IMAGE,较重的字段是40kb,但它只返回16kb
如果我想读取 transact-sql 中的
image
或 text
数据类型(例如,SQL 批处理、存储过程),我需要使用 readtext
命令,而该命令又需要一个指向实际数据的 varbinary
指针.
这是 transact-sql 中的一个基本示例:
declare @val varbinary(16)
select @val = textptr(copy) -- obtain the text pointer for <column_name>
from blurbs -- from <table_name>
where au_id = "648-92-1872"
readtext blurbs.copy -- <table_name>.<column_name> being read
@val 1 5 -- text pointer, offset, size(length)
注意:我不使用
python/pmssql
,但我假设它有一个函数(?)能够处理由readtext
返回的数据流。
参考资料: