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 读取的主要内容,如果未能解决你的问题,请参考以下文章