sql-server - SQL 存储过程中的 Unicode
问题描述
从存储过程接收到的数据表包含一个 XML 列。该 XML 列包含 unicode 数据(例如:顾客名称)。由于 XML 中的文字没有以 N' 为前缀。如何获取 unicode 数据并将其存储在变量中?
解决方案
您只需在下面的 XML 列之前添加N并将此值分配给变量。
DECLARE @XML XML=N'顾客名称' --Add your Column Name
SELECT @XML
DECLARE @XML NVARCHAR(50)=N'顾客名称'
SELECT @XML
插入
INSERT INTO TableName ([Col_Name]) VALUES (N'<Value>')
XML 解析
DECLARE @XML_ XML=N'<Event><Name><Action>顾客名称</Action></Name></Event>' -- add "N" here
SELECT T.item.value('(Name)[1]', 'NVARCHAR(MAX)') AS [Unicode]
FROM @XML_.nodes('/Event') AS T(item)
使用表格插入
DECLARE @T TABLE ( --- Creating 1st Tables
[NAME] NVARCHAR(255))
DECLARE @AnotherTable TABLE ( --- Creating 2nd Tables
[2nd Table NAME] NVARCHAR(255))
DECLARE @xml_ XML=N'<Event><Name><Action>顾客名称</Action></Name></Event>' -- add "N" here
INSERT INTO @T ----Inserting Data into 1st Table
SELECT T.item.value('(Name)[1]', 'NVARCHAR(MAX)')
FROM @XML_.nodes('/Event') AS T(item)
SET @xml_=(SELECT NAME FROM @T FOR XML PATH('Columns'), TYPE)
INSERT INTO @AnotherTable ----Inserting Data into 2nd Table
SELECT T.item.value('(NAME)[1]', 'NVARCHAR(MAX)')
FROM @XML_.nodes('/Columns') AS T(item)
SELECT * FROM @T
SELECT * FROM @AnotherTable
推荐阅读
- node.js - 我无法安装 puppeteer 库
- python - Importerror:ubuntu中python2.7.6中没有名为time的模块
- ubuntu - 在构建 VTK 时,ccmake 没有链接到我的 ubuntu 上最新版本的 cmake(ccmake 说 cmake 是 3.5.1 版,我不是!)
- python-3.x - 在一个图中创建 3 个熊猫系列作为饼图
- excel - 查找并替换以“F*”开头的项目
- amazon-s3 - 如何配置 `Terraform` 以将 zip 文件上传到 `s3` 存储桶,然后将它们部署到 lambda
- data-visualization - Power BI 中的自定义可视化
- python - 对于大小为 0 Python 的轴 0,索引 0 超出范围
- excel - 如何在结果满足条件的公式中引用单元格
- python - 查找列表中的序列号及其开始和结束索引