Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sys.fn_sqlvarbasetostr使用的字符编码_Sql_Tsql_Encoding_Csv - Fatal编程技术网

sys.fn_sqlvarbasetostr使用的字符编码

sys.fn_sqlvarbasetostr使用的字符编码,sql,tsql,encoding,csv,Sql,Tsql,Encoding,Csv,我正在将我的数据集备份为csv。 但是,其中一个表包含一个二进制字段。我遇到了这个函数sys.fn_sqlvarbasetostr,它是由MS SQL提供的,但我找不到它将使用哪个字符编码 如果你知道其他的方法,请告诉我 编辑:- 我们最终在c语言中完成了这项工作,但我仍然将Alex的答案标记为正确,因为如果我通过SQL查询来完成这项工作,那么他的答案将起作用 我们最终得出的方法是:- 对于二进制列,csv包含十六进制值,因此示例行类似于“somename”、“someothertext”,2b

我正在将我的数据集备份为csv。 但是,其中一个表包含一个二进制字段。我遇到了这个函数sys.fn_sqlvarbasetostr,它是由MS SQL提供的,但我找不到它将使用哪个字符编码

如果你知道其他的方法,请告诉我

编辑:-

我们最终在c语言中完成了这项工作,但我仍然将Alex的答案标记为正确,因为如果我通过SQL查询来完成这项工作,那么他的答案将起作用

我们最终得出的方法是:- 对于二进制列,csv包含十六进制值,因此示例行类似于“somename”、“someothertext”,2bcd8十六进制表示二进制数据。
起初,我们没有正确地编写十六进制数据。0x3d455失败,'0xa2342'失败,'3444d'失败,2bcd8成功

2008年可以直接转换成字符串

declare @b varbinary(1024) = 0xDEADBEEFF00D
select convert(varchar(1024), @b, 1) + ','

>>0xDEADBEEFF00D,
SQL2k:

为了


我只是想知道,由于我对字符编码的知识有限,在不知道所使用的字符编码的情况下将其转换为十六进制字符串安全吗?这个十六进制字符串以后可以转换回相同的二进制数据吗?这样转换应该很好,它只是二进制字段中每个字节的字符串表示,要将其解码回varbinary,只需转换varbinary1024,'0xDEADBEEFF00D',1damn!他们的数据库使用的是旧版本的sql…它的sql server 2000!fn_sqlvarbasetostr是否可用?这是一样的,只是ByTest的1:1表示,该函数可用,但找不到它的反向函数,该函数可以接受十六进制并将其放入二进制
declare @base   binary(6)   set @base = 0xB00BB00BB00B
declare @aschar varchar(14) set @aschar = dbo.fn_sqlvarbasetostr(@base)

select 'as string: ' + @aschar

--convert back to binary
declare @bin binary(6)
declare @sql nvarchar(512) = 'set @bin=convert(binary(6),' + @aschar + ')'
execute sp_executesql @sql, N'@bin binary(6) output', @bin=@bin output

select 'as binary:', @bin, case when @bin = @base then 'ok' end
>>as string: 0xb00bb00bb00b
>>as binary: 0xB00BB00BB00B  ok