BLOB到String,SQL Server

use*_*448 8 sql sql-server blob dynamics-nav

我有一个文本字符串存储为BLOB数据库中的数据类型.我想通过SQL select查询提取它,但是我在转换/转换BLOB到可读时遇到问题text.

我试过例如

select convert(nvarchar(40),convert(varbinary(40),BLOBTextToExtract))
from [NavisionSQL$Customer]
Run Code Online (Sandbox Code Playgroud)

我想我需要类似的东西,但我无法弄清楚我需要做什么转换.有人可以给我一些指示吗?

问候

chr*_*ris 9

接受的答案仅适用于前 30 个字符。这对我有用:

select convert(varchar(max), convert(varbinary(max),myBlobColumn)) FROM table_name
Run Code Online (Sandbox Code Playgroud)


use*_*448 8

问题显然不是SQL服务器,而是更新字段的NAV系统.有一个压缩属性可以在NAV中的BLOB字段上使用,它不是SQL Server的一部分.因此,虽然转换有效,但自定义压缩使数据无法读取.

解决方案是通过对象设计器,表设计器,字段属性(字段行上的Shift + F4)关闭压缩.

之后,可以使用例如:select select(varchar(max),cast(BLOBFIELD as binary))从表中提取数据

感谢所有在很多方面都正确的答案!