sql >> データベース >  >> RDS >> Oracle

パラメータ値を渡すOracleXMLQuery

    問題は、XPathでの文字列の連結です。 ... AR_ITEMS['||lp||']/ITEMS ...を実行するのは好きではありません 。

    PL/SQLの値を渡すことができますlp passingを介して変数を入力します 複数のコンマ区切りの引数を許可する句。識別子を付けて、XPathで直接参照します。使用済みの"lp"を使い続けました および$lp; PL / SQL変数名と一致する必要はありませんが、一致する場合はより明確になる可能性があります。

          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,
    

    PL/SQLループ索引変数lp pls_integerです 通過節が気に入らない;これを直接渡すとORA-00932になるため、数値データ型にキャストする必要があります。




    1. OracleのLikeとContains()の検索基準の違い

    2. mysqlスクリプトのIF条件

    3. node-mysqlを使用してMySqlクエリの結果を変数に保存する方法

    4. 仮想列式で数値を連結すると、ORA-12899がスローされます:値が列に対して大きすぎます