sql >> Databáze >  >> RDS >> Oracle

Oracle XMLQuery předávání hodnoty parametru

Problémem je zřetězení řetězců v XPath. Nelíbí se mu, že děláte ... AR_ITEMS['||lp||']/ITEMS ... .

Můžete předat hodnotu vašeho PL/SQL lp proměnná přes passing klauzule, která umožňuje více argumentů oddělených čárkou; dejte mu identifikátor a pak se na něj odkažte přímo v XPath. Zasekl jsem použitý "lp" a $lp; nemusí se shodovat s názvem proměnné PL/SQL, ale pokud ano, mohlo by to být jasnější.

      XMLQuery('for $i in distinct-values(/invoice/AR_ITEMS[$lp]/ITEMS/EVENTS/BAL_IMPACTS/DISCOUNT_INFO)
                where $i = "Plan499 Corp Disc" 
                or $i = "Plan899 Corp Disc" 
                or $i = "Plan1099 Corp Disc" 
                or $i = "Plan1599 Corp Disc"
                return $i' passing original_xmldoc, cast(lp as number) as "lp" returning content ).getStringVal() sys_descr,

Indexová proměnná smyčky PL/SQL lp je pls_integer který přecházející věta nemá ráda; pokud to předáte přímo, dostanete ORA-00932, takže jej musíte přetypovat na datový typ čísla.




  1. Připojení MS SQL k IRI Workbench

  2. Jak vyvolat vlastní chybu Postgresql a zpracovat ji v Ecto

  3. Jak zjistit první a poslední datum aktuálního roku?

  4. Jaká jsou databázová omezení?