小编J S*_*dhu的帖子

SSIS - 数据查看器未显示派生列

我需要能够在数据查看器中看到派生列。详情请看下图。

我尝试禁用和启用数据查看器,但这对我没有任何改变。

请参阅此图片了解我面临的问题。

sql-server ssis

5
推荐指数
1
解决办法
873
查看次数

SQL - UTF-8 到 varchar/nvarchar 编码问题

背景 - 我从网站接收以 UTF-8 编码的 json 格式的响应数据。json 的 body 属性具有 base64binary 类型的值,我将其存储为 ms sql server 上的 nvarchar 类型。

当我将 base64binary 数据转换为 varchar 或 nvarchar 时,我看到有趣的字符(代替双引号)表明存在编码问题 -这就是我问这个问题的原因。

请参阅下面的剖析代码和底部的可运行示例,了解我的担忧。

在转换过程中注意有趣的字符。

例如。代表IRB控股公司(的“公司“)

以下查询修复了上述问题 - 我看到引号应该出现,但随后在包含'&' 的行上失败,这是 xml 中的特殊字符。

select    convert(xml,  '<?xml version="1.0" encoding="UTF-8"?>' + convert(varchar(max),cast('' as xml).value('xs:base64Binary(sql:column("body"))','varbinary(max)')))
Run Code Online (Sandbox Code Playgroud)

以下查询通过使用replace语句处理上述问题,我能够按预期完全查看所有行。但是这个解决方案只会处理'&'s。

要运行的示例代码:

    declare @t table ( [body] nvarchar(max) ) 
    
    insert into @t(body) 
    select 'REFMTEFTLCBUWCDigJMgTWF5IDcsIDIwMTkg4oCTIENvdmV5ICYgUGFyayBFbmVyZ3kgSG9sZGluZ3MgTExDICjigJxDb3ZleSBQYXJr4oCdIA=='
    
    select convert(varchar(max),cast('' as xml).value('xs:base64Binary(sql:column("body"))','varbinary(max)'))
        , convert(xml, '<?xml version="1.0" encoding="UTF-8"?>'+ replace(convert(varchar(max),convert(varchar(max),cast('' as …
Run Code Online (Sandbox Code Playgroud)

xml sql-server encoding json utf-8

3
推荐指数
2
解决办法
8012
查看次数

标签 统计

sql-server ×2

encoding ×1

json ×1

ssis ×1

utf-8 ×1

xml ×1