【发布时间】:2017-11-21 23:35:02
【问题描述】:
我有这个 XML:
<envCFe versao="0.07" xmlns="http://www.fazenda.sp.gov.br/sat">
<tpAmb>1</tpAmb>
<idLote>4100</idLote>
<cUF>35</cUF>
<LoteCFe>
<CFe>
<infCFe versao="0.07" versaoDadosEnt="0.07" versaoSB="020100">
</infCFe>
</CFe>
<CFe>
<infCFe versao="0.07" versaoDadosEnt="0.07" versaoSB="020100">
</infCFe>
</CFe>
<CFe>
<infCFe versao="0.07" versaoDadosEnt="0.07" versaoSB="020100">
</infCFe>
</CFe>
<dhEnvio>20171106081311</dhEnvio>
<nserieSAT>000081226</nserieSAT>
</envCFe>
而且我需要使<LoteCFe 中的节点<CFe> 检索变量中声明为XMLTYPE 中的尽可能多的节点
作为参数传递给另一个过程,所以为了简化:
SELECT
X.nodeCFe
FROM
XMLTABLE(
'/envCFe/LoteCFe'
PASSING XMLTYPE(
'<envCFe versao="0.07" xmlns="http://www.fazenda.sp.gov.br/sat">
<tpAmb>1</tpAmb>
<idLote>4100</idLote>
<cUF>35</cUF>
<LoteCFe>
<CFe>
<infCFe versao="0.07" versaoDadosEnt="0.07" versaoSB="020100">
</infCFe>
</CFe>
<CFe>
<infCFe versao="0.07" versaoDadosEnt="0.07" versaoSB="020100">
</infCFe>
</CFe>
<CFe>
<infCFe versao="0.07" versaoDadosEnt="0.07" versaoSB="020100">
</infCFe>
</CFe>
<dhEnvio>20171106081311</dhEnvio>
<nserieSAT>000081226</nserieSAT>
</LoteCFe>
</envCFe>'
)
COLUMNS
nodeCFe XMLTYPE PATH 'CFe'
) X
;
将这个结果作为表格我会做错什么?
nodeCFe
-------
<CFe><infCFe versao="0.07" versaoDadosEnt="0.07" versaoSB="020100"></infCFe</CFe>
<CFe><infCFe versao="0.07" versaoDadosEnt="0.07" versaoSB="020100"></infCFe</CFe>
<CFe><infCFe versao="0.07" versaoDadosEnt="0.07" versaoSB="020100"></infCFe</CFe>
【问题讨论】:
-
不是很清楚......你的查询现在返回什么,你想要什么?三个单独的 XMLType 值?
标签: xml oracle xmltype xmltable