gpt4 book ai didi

sql-server - SQL Server base64 编码存储函数

转载 作者:行者123 更新时间:2023-12-03 23:24:06 29 4
gpt4 key购买 nike

我需要一个简单的存储函数来进一步进行 SQL Server base64 编码,但它为我传递的每个字符串返回 null。我认为 sql:parameter 不适用于输入函数参数,但不知道如何避免它。

这是我的代码:

ALTER FUNCTION [dbo].[usf_base64_encode]
(@value nvarchar(max))
RETURNS nvarchar(max)
AS
BEGIN
RETURN cast('' as xml).value('xs:base64Binary(sql:variable("@value"))', 'varchar(max)')
END

此代码片段有效,但它声明了在函数中无法实现的局部变量。
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

最佳答案

好吧,我肯定是很愚蠢的。此代码有效:

ALTER FUNCTION [dbo].[usf_base64_encode]
(
@value varchar(max)
)
RETURNS varchar(max)
AS
BEGIN
DECLARE @source varbinary(max) = convert(varbinary(max), @value)
RETURN cast('' as xml).value('xs:base64Binary(sql:variable("@source"))', 'varchar(max)')
END

关于sql-server - SQL Server base64 编码存储函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32243815/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com