BLOB到字符串,SQL Server
我将一个文本字符串存储为数据库中的BLOB到字符串,SQL Server,sql,sql-server,blob,dynamics-nav,Sql,Sql Server,Blob,Dynamics Nav,我将一个文本字符串存储为数据库中的BLOB数据类型。我想通过SQL select查询提取它,但在将BLOB转换为可读的text时遇到问题 我试过了 select convert(nvarchar(40),convert(varbinary(40),BLOBTextToExtract)) from [NavisionSQL$Customer] 我想我需要一些类似的东西,但我不知道我需要做什么转换。谁能给我指路吗 关于这取决于数据最初如何放入列中。尝试以下两种方法之一: SELECT CONVER
BLOB
数据类型。我想通过SQL select查询提取它,但在将BLOB
转换为可读的text
时遇到问题
我试过了
select convert(nvarchar(40),convert(varbinary(40),BLOBTextToExtract))
from [NavisionSQL$Customer]
我想我需要一些类似的东西,但我不知道我需要做什么转换。谁能给我指路吗
关于这取决于数据最初如何放入列中。尝试以下两种方法之一:
SELECT CONVERT(NVarChar(40), BLOBTextToExtract)
FROM [NavisionSQL$Customer];
或者如果它只是varchar
SELECT CONVERT(VarChar(40), BLOBTextToExtract)
FROM [NavisionSQL$Customer];
我使用此脚本在SQL Server 2K8 R2上进行验证和测试:
DECLARE @blob VarBinary(MAX) = CONVERT(VarBinary(MAX), 'test');
-- show the binary representation
SELECT @blob;
-- this doesn't work
SELECT CONVERT(NVarChar(100), @blob);
-- but this does
SELECT CONVERT(VarChar(100), @blob);
你能试试这个吗
select convert(nvarchar(max),convert(varbinary(max),blob_column)) from table_name
问题显然不是SQL server,而是更新字段的导航系统。有一个压缩属性可用于NAV中的BLOB字段,它不是SQL Server的一部分。因此,自定义压缩使数据无法读取,尽管转换工作正常 解决方案是通过对象设计器、表设计器和字段属性(字段行上的Shift+F4)关闭压缩 之后,可使用以下工具提取数据: 选择convert(varchar(max)、cast(BLOBFIELD作为二进制文件)) 从桌子上 感谢所有在许多方面都正确的答案 找到了这个 bcp“从TableName中选择前1个BlobText”查询“C:\designationfolder\FileName.txt”-T-C” 如果您需要了解bcp标志的不同选项
接受的答案仅适用于前30个字符。 这对我很有用:
select convert(varchar(max), convert(varbinary(max),myBlobColumn)) FROM table_name
有了第一个,我得到的只是中文符号。第二个返回D | Z表示所有内容。我很确定文本被强制存储为blob(图像)您使用的SQL Server版本是什么?那么您的数据库的兼容级别是什么?在SSMS中右键单击您的数据库并选择属性。在“选项”页面中有一个名为“兼容性”的设置。它有什么价值?例如80=SQL2000。它只返回中文符号。从一开始的数据类型是image(我猜是BLOB)为了避免使用中文符号,最好使用
从table_name中选择convert(varchar(max),convert(varbinary(max),BLOB_column))
我尝试了你的解决方案,但是我得到了以下错误:不允许从数据类型text显式转换为varbinary。
有什么想法吗..?如果还包含关闭BLOB字段压缩的提示,这应该是可以接受的答案。
select convert(varchar(max), convert(varbinary(max),myBlobColumn)) FROM table_name