对于OPENXML sql,将空XML节点的数据类型nvarchar转换为数值时出错

克里

我遇到一个错误

将数据类型nvarchar转换为数值时出错

使用转换空节点时OPENXML我尝试了不同的方法CASTCONVERT方法,但仍然遇到相同的错误,然后最终使用以下方法。

这是SQL查询:

 IF OBJECT_ID('tempdb..#TempData') IS NOT NULL   
     DROP TABLE #TempData   

 DECLARE @XML XML

 SET @XML = '<ArrayOfTempData>
                <TempData>
                    <StudentId>1418431</StudentId>
                    <Name>Bill</Name>
                    <DeptId>2130900</DeptId>
                    <Fees p3:nil="true" xmlns:p3="http://www.w3.org/2001/XMLSchema-instance" />
                </TempData>
                <TempData>
                    <StudentId>1418431</StudentId>
                    <Name>Samuel</Name>
                    <DeptId>2280971</DeptId>
                    <Fees>4628617.156</Fees>
                </TempData>
            </ArrayOfTempData>'

DECLARE @handle INT  
DECLARE @PrepareXmlStatus INT  

EXEC @PrepareXmlStatus= sp_xml_preparedocument @handle OUTPUT, @XML  

SELECT 
    StudentId, Name, DeptId, Fees 
    -- nullif(Fees , '') as Fees,
    -- CASE WHEN Fees = '' THEN NULL ELSE CAST(Fees AS NUMERIC(13, 3)) END AS Fees,
    -- CASE WHEN ISNUMERIC(Fees) <> 1 THEN NULL ELSE CAST(Fees AS NUMERIC(13, 3)) END AS Fees,
    -- CONVERT(NUMERIC(13, 3), NULLIF(Fees, '')) AS Fees
INTO 
    #TempData 
FROM 
    OPENXML(@handle, '/ArrayOfTempData/TempData', 2)  
    WITH (StudentId INT,
          Name VARCHAR(50),
          DeptId INT,
          Fees NUMERIC(13, 3) 'Fees[.!=""]'
         )

SELECT * FROM #TempData

带注释的行是我尝试过的其他方法,然后使用了该SchemaDeclaration方法。

还有更好的建议吗?

普雷迪普

您可以使用nodes函数读取xml。

SELECT StudentId = n.value('(./StudentId)[1]', 'int'), 
       NAME = n.value('(./Name)[1]', 'Varchar(8000)'), 
       DeptId = n.value('(./DeptId)[1]', 'int'), 
       Fees = n.value('(./Fees)[1]', 'Varchar(8000)') 
FROM   @xml.nodes('/ArrayOfTempData/TempData') AS a(n) 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

空XML节点导致将数据类型varchar转换为数值时出错

来自分类Dev

我的错误在哪行?将数据类型nvarchar转换为数值时出错

来自分类Dev

将nvarchar转换为int数据类型时出错

来自分类Dev

将数据类型NVarchar转换为int时出错

来自分类Dev

将数据类型从varchar转换为数值时出错

来自分类Dev

使用动态T-SQL将数据类型nvarchar转换为float时出错

来自分类Dev

将数据类型nvarchar转换为数字时出错-SQL Server

来自分类Dev

将数据类型nvarchar转换为日期时间SQL SERVER 2005时出错

来自分类Dev

INSERT Query SQL(将数据类型nvarchar转换为(null)时出错)

来自分类Dev

SQL Server:将数据类型varchar转换为数值时出错

来自分类Dev

在查询中将数据类型nvarchar转换为数值时出错

来自分类Dev

在执行查询时将数值转换为数据类型数值的算术溢出错误

来自分类Dev

将数据类型nvarchar转换为int时出错-执行存储过程时

来自分类Dev

将数据类型 nvarchar 转换为 bigint 时出错 - 加入两种不同的数据类型时

来自分类Dev

使用XML路径方法的SQL错误,将数据类型varchar转换为float时出错

来自分类Dev

将数据从nvarchar转换为数值时出错

来自分类Dev

使用子字符串转换将数据类型varchar转换为数值时出错

来自分类Dev

将数据类型nvarchar转换为int t时出错

来自分类Dev

调用存储过程错误:将数据类型nvarchar转换为datetime时出错

来自分类Dev

无法将数据类型nvarchar转换为float时出错

来自分类Dev

我收到一个错误“将数据类型nvarchar转换为实数时出错”。

来自分类Dev

特定列 -- 将数据类型 nvarchar 转换为 bigint 时出错

来自分类Dev

在将数据插入临时表时,将数据类型nvarchar转换为数值时遇到错误

来自分类Dev

SQL查询将nvarchar转换为数据类型int在存储过程中出错

来自分类Dev

CAST(somenumber as VARCHAR(10))+ somestring返回将数据类型varchar转换为数值时出错

来自分类Dev

存储过程-将数据类型varchar转换为数值时出错

来自分类Dev

SQLException:将数据类型varchar转换为数值时出错

来自分类Dev

在触发器获取错误中,将数据类型varchar转换为数值时出错

来自分类Dev

将varchar值转换为数值数据类型时,SQL转换失败

Related 相关文章

  1. 1

    空XML节点导致将数据类型varchar转换为数值时出错

  2. 2

    我的错误在哪行?将数据类型nvarchar转换为数值时出错

  3. 3

    将nvarchar转换为int数据类型时出错

  4. 4

    将数据类型NVarchar转换为int时出错

  5. 5

    将数据类型从varchar转换为数值时出错

  6. 6

    使用动态T-SQL将数据类型nvarchar转换为float时出错

  7. 7

    将数据类型nvarchar转换为数字时出错-SQL Server

  8. 8

    将数据类型nvarchar转换为日期时间SQL SERVER 2005时出错

  9. 9

    INSERT Query SQL(将数据类型nvarchar转换为(null)时出错)

  10. 10

    SQL Server:将数据类型varchar转换为数值时出错

  11. 11

    在查询中将数据类型nvarchar转换为数值时出错

  12. 12

    在执行查询时将数值转换为数据类型数值的算术溢出错误

  13. 13

    将数据类型nvarchar转换为int时出错-执行存储过程时

  14. 14

    将数据类型 nvarchar 转换为 bigint 时出错 - 加入两种不同的数据类型时

  15. 15

    使用XML路径方法的SQL错误,将数据类型varchar转换为float时出错

  16. 16

    将数据从nvarchar转换为数值时出错

  17. 17

    使用子字符串转换将数据类型varchar转换为数值时出错

  18. 18

    将数据类型nvarchar转换为int t时出错

  19. 19

    调用存储过程错误:将数据类型nvarchar转换为datetime时出错

  20. 20

    无法将数据类型nvarchar转换为float时出错

  21. 21

    我收到一个错误“将数据类型nvarchar转换为实数时出错”。

  22. 22

    特定列 -- 将数据类型 nvarchar 转换为 bigint 时出错

  23. 23

    在将数据插入临时表时,将数据类型nvarchar转换为数值时遇到错误

  24. 24

    SQL查询将nvarchar转换为数据类型int在存储过程中出错

  25. 25

    CAST(somenumber as VARCHAR(10))+ somestring返回将数据类型varchar转换为数值时出错

  26. 26

    存储过程-将数据类型varchar转换为数值时出错

  27. 27

    SQLException:将数据类型varchar转换为数值时出错

  28. 28

    在触发器获取错误中,将数据类型varchar转换为数值时出错

  29. 29

    将varchar值转换为数值数据类型时,SQL转换失败

热门标签

归档