如何在SQL Server / Oracle / Postgres中将json字符串转换为varbinary?

时间:2019-07-19 16:48:55

标签: sql-server tsql

如何在SQL中将json字符串转换为varbinary

我在SQL Server中尝试了以下查询:

  SELECT CONVERT(VARBINARY(MAX), '[{"name": "John","skills": ["SQL", "C#", "Azure"]}, {"name": "Jane","surname": "Doe"}]', 1);

但是会引发此错误:

  

信息8114,第16级,状态5,第7行
  将数据类型varchar转换为varbinary时出错。

我该如何解决?

2 个答案:

答案 0 :(得分:3)

在进行转换时,您将Style值指定为1,仅在要转换的表达式是具有偶数个十六进制数字的字符表达式时才有效。由于JSON是非字符表达式,因此您应该将Style值设置为0。

这应该可以正常工作:

SELECT CONVERT(VARBINARY(max), '[{"name": "John","skills": ["SQL", "C#", "Azure"]}, {"name": "Jane","surname": "Doe"}]', 0);

更多信息in documentation

答案 1 :(得分:0)

语法是

select  convert(varbinary(100), 'sql server version')

sql fiddle