我在获取特定节点的位置时遇到问题。问题是位置没有对父节点的引用(无属性),但它们在 xml 层次结构中位于它之下。当我尝试以这种方式对其进行参数化时:
SELECT something....
FROM ktr_xml x,
XMLTABLE (
'/Invoices/Invoice[@ID="' || p_invoice_number || '"]' || '/InvoiceLine'
PASSING x.xml
COLUMNS line_number VARCHAR2 (100) PATH 'ID',
Product_quantity VARCHAR2 (100)
PATH 'InvoicedQuantity',
etc.... etc....
WHERE x.id = p_id;
它给了我错误,该字符串是预期的,这意味着我无法基于发票 (ID) 字段构建动态路径。
如果我运行此查询:
FROM ktr_xml x,
XMLTABLE (
'/Invoices/Invoice/InvoiceLine'
PASSING x.xml
它不仅从特定发票中获取所有物品。
有什么想法可以解决吗?