2017-02-17 34 views
0

我运行以下取回属于我的转换二进制数据选择为varchar,我则输出保存到一个文件,它被截断!sqlserver的varbinary数据想不截断

SELECT 
cast([BINARY_VALUE] as varchar(max)) BLOB_VALUE 
FROM [PROD3].[DOMAIN].[BLOBS] 
WHERE OBJECT_ID = 881462 

如何将整个转换后的二进制数据保存到使用sqlserver的文件中?

+0

多少大是输出 – TheGameiswar

回答

0

请检查这个问题:

varbinary to string on SQL Server

TL; DR:你不应该使用CAST,但CONVERT:

SELECT 
CONVERT(varchar(max), BINARY_VALUE,2) as BLOB_VALUE 
FROM [PROD3].[DOMAIN].[BLOBS] 
WHERE OBJECT_ID = 881462 

注意使用style参数的2

+0

选择 CONVERT(VARCHAR(最大值),[BINARY_VALUE],2)BLOB_VALUE FROM [PROD3] [DOMAIN]。[BLOBS] WHERE OBJECT_ID = 881462 以上的工作,但DID不转换为可读的字符串!! ?? – NottmTony

+0

尝试转换为NVARCHAR代替VARCHAR:'SELECT CONVERT(nvarchar的(最大),BINARY_VALUE,2)作为BLOB_VALUE FROM [PROD3] [DOMAIN] [BLOBS] WHERE OBJECT_ID = 881462' –

+0

不想...相同。结果。 CASTworks,CONVERT似乎不是, – NottmTony

1

你尝试过bcp命令吗?它应该工作正常。

+0

嗯...不...我不知道BCP - 它是否已经内置了? – NottmTony

+0

这是SQL Server自带的区分大小写的命令。如果你正在使用Windows身份验证,那么你会很好的使用-T开关:这里是一个例子。 c:\> bcp“”queryout c:\ temp \ data.txt -c -T -S SQLSERVERNAME – Laeeq