本文介紹了Microsoft SQL 2016解碼Base64列的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我需要幫助來解碼數(shù)據(jù)庫中的Base64密碼列。當我將單列內(nèi)容復(fù)制到https://www.base64decode.org/中時,它可以完美地解碼。在本專欄中,我只需要在大約7000行上執(zhí)行此操作。我們非常感謝您的幫助。
推薦答案
您可以使用(source):
declare @source varbinary(max), @encoded varchar(max), @decoded varbinary(max)
set @source = convert(varbinary(max), 'Hello Base64')
set @encoded = cast('' as xml).value('xs:base64Binary(sql:variable("@source"))', 'varchar(max)') set @decoded = cast('' as xml).value('xs:base64Binary(sql:variable("@encoded"))', 'varbinary(max)')
select convert(varchar(max), @source) as source_varchar, @source as source_binary, @encoded as encoded, @decoded as decoded_binary, convert(varchar(max), @decoded) as decoded_varchar
.但是,為此創(chuàng)建一個函數(shù),則:
create function fnDecodeBase64 (@encoded as varchar(max))
returns varchar(max)
as
begin
declare @decoded varchar(max)
set @decoded = cast('' as xml).value('xs:base64Binary(sql:variable("@encoded"))', 'varbinary(max)')
return @decoded
end
因此,您可以使用:
select dbo.fnDecodeBase64(some_column) from Some_Table
您還可以使用:
select convert(varchar(max),cast(N'' as xml).value('xs:base64Binary(sql:column("t.SomeColumn"))', 'varbinary(max)')) as converted_64_column
from SomeTable as t
關(guān)鍵字:sql:column
起作用
這篇關(guān)于Microsoft SQL 2016解碼Base64列的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,