soj*_*jin 0 oracle xpath plsql
如何在Oracle XMLTable()中使用带有类似'/ abc/[contract = $ count]/initialValue'的变量的XPath?
例如:
XMLTable('root/level1', PASSING xmlContent
COLUMNS initial_value varchar2(100) PATH '/abc/[contract = $count]/initialValue'
)
Run Code Online (Sandbox Code Playgroud)
如何替换/评估$ count运行时?
您可以传入变量,只需在传递子句中定义它们:
with table1 AS
(select xmltype(
'<abc>
<def>
<contract>1</contract>
<oper>SFO</oper>
<lmt>limit1</lmt>
</def>
<def>
<contract>2</contract>
<oper>boston</oper>
<lmt >limit2</lmt>
</def>
</abc>'
) xmlcol from dual
)
SELECT u.*
FROM table1
, XMLTable('/abc/def[contract = $count]'
PASSING xmlcol, 1 as "count"
COLUMNS contract integer path 'contract',
oper VARCHAR2(20) PATH 'oper' ) u
CONTRACT OPER
---------- --------------------
1 SFO
Run Code Online (Sandbox Code Playgroud)