我设置了一个SQL表,将.json文件存储为varchar类型的base-64编码文本。有没有办法仅使用 SQL 语句将这些文件转换为 JSON 字符串?我只是尝试从编码文件中检索 JSON 字符串。
我已经尝试了许多 T-SQL JSON 函数。但是,它们仅适用于 JSON 字符串,不适用于 JSON 文档。
在 SQL Server 2005 及更高版本上,您可以使用 XML 查询来为您执行此操作,例如:
if object_id(N'dbo.StackOverflow') is not null
drop table dbo.StackOverflow;
go
create table dbo.StackOverflow (
Base64JSON varchar(30) not null
);
insert dbo.StackOverflow (Base64JSON) values ('eyJIZWxsbyI6ICJXb3JsZCEifQ==');
go
select Base64JSON,
[JSON] = cast(cast('' as XML).value('xs:base64Binary(sql:column("StackOverflow.Base64JSON"))', 'varbinary(30)') as varchar(30))
from dbo.StackOverflow
这会产生结果:
Base64JSON JSON
------------------------------ ------------------------------
eyJIZWxsbyI6ICJXb3JsZCEifQ== {"Hello": "World!"}