首页 > 解决方案 > 从 XML 变量中读取非拉丁字符并插入到表中

问题描述

我正在尝试将一些阿拉伯语信息从 XML 变量插入到 SQL Server 表中。

我做了类似下面的事情。但是它不起作用。你能告诉我缺少什么吗?

Create Table EmployeeTbl
(
     firstname nvarchar(100), 
     familyName nvarchar(100) 
)

Insert into EmployeeTbl (firstName, FamilyName) 
    select 
        t.x.value('(./firstname)[1]', 'nvarchar(100)') as firstname,
        t.x.value('(./familyname)[1]', 'nvarchar(100)') as familyname           
    from  
        @XMLVariable.nodes('//employeexml) t(x) 

标签: sql-serverxmlarabicxmlnodecollate

解决方案


'是的,您在最后一行错过了一个单引号( ):

Create Table EmployeeTbl
(
     firstname nvarchar(100), 
     familyName nvarchar(100) 
)

Insert into EmployeeTbl (firstName, FamilyName) 
    select 
        t.x.value('(./firstname)[1]', 'nvarchar(100)') as firstname,
        t.x.value('(./familyname)[1]', 'nvarchar(100)') as familyname           
    from  
        @XMLVariable.nodes('//employeexml') t(x)

您的 XML 文件应该是这样的:

<employeexml Id="1">  
     <firstname>بشیر</firstname>  
     <familyname>المنادی</familyname>  
</employeexml>
<employeexml Id="2">  
     <firstname>یعغوب</firstname>  
     <familyname>سمیر</familyname>  
</employeexml>

推荐阅读