XML 无法使用 Select 读取

Posted

技术标签:

【中文标题】XML 无法使用 Select 读取【英文标题】:XML Cannot Read using Select 【发布时间】:2015-08-13 07:19:36 【问题描述】:
    <Attendance xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/ZKWebApi">
  <Records>
    <Record>
      <EnrollNumber>1</EnrollNumber>
      <EntryTime>2015-02-16T00:13:00</EntryTime>
      <InOutMode>0</InOutMode>
      <VerifyMode>3</VerifyMode>
    </Record>
  </Records>
</Attendance>

我尝试插入此 Xml 并从 Select Statemant 中读取属性,这不是读取值不会出现。

这是我的选择查询

SELECT t.CARD_NO, t.INOUT_MODE,t.VERIFY_MODE
 FROM XMLTABLE ('/Attendance/Records/Record'
               PASSING (SELECT xmlcol FROM BIZZXE_V2_SCH.BB)
               COLUMNS CARD_NO               NUMBER PATH 'EnrollNumber',
                       INOUT_MODE            NUMBER PATH 'InOutMode',
                       VERIFY_MODE           NUMBER PATH 'VerifyMode') T;

【问题讨论】:

请解释您所说的“价值未到来”是什么意思。发生什么了?空白行?没有行?错误信息? 没有错误只是空白 我觉得找不到路径 您的命名空间声明有问题。试试 w3.org/2001/XMLSchema-instance" xmlns:j="schemas.datacontract.org/2004/07/ZKWebApi"> 【参考方案1】:
SELECT t.CARD_NO, t.INOUT_MODE,t.VERIFY_MODE
 FROM XMLTABLE ( XMLNAMESPACES('http://www.w3.org/2001/XMLSchema-instance' as "i", default 'http://schemas.datacontract.org/2004/07/ZKWebApi' ),'/Attendance/Records/Record'
               PASSING (SELECT xmlcol FROM BIZZXE_V2_SCH.BB)
               COLUMNS CARD_NO               NUMBER PATH 'EnrollNumber',
                       INOUT_MODE            NUMBER PATH 'InOutMode',
                       VERIFY_MODE           NUMBER PATH 'VerifyMode') T;

您的 xml 的默认命名空间设置为 xmlns="http://schemas.datacontract.org/2004/07/ZKWebApi"。您必须在 xmltable 中添加此信息。

【讨论】:

以上是关于XML 无法使用 Select 读取的主要内容,如果未能解决你的问题,请参考以下文章

使用带有formik的react-select时无法读取未定义的属性“类型”

无法使用 XML 文件的 PHP 读取子节点

无法使用 pyspark 将 Xml 数据读取到数据帧

Select2.js 错误:无法读取未定义的属性“长度”

无法将 XML 读取到对象

select2:无法读取未定义的属性“id”