1

XPath を使用してクエリを実行できるようにする必要がある xmltype を持つテーブルがあります。Xpath Rails を含む where 句の条件を含めると、行が返されません。生成されたクエリを Rails のログからコピーしてスタンドアロンで実行すると、予想される行が返されます。

SELECT * FROM my_table tab WHERE ( tab.myxml.existsnode('//MyNode')  = 1

コード:

select("tab.myxml.getclobval() myxml").
from("my_table tab").
where("tab.myxml.existsnode(:xp) = 1", :xp=>"//MyNode")
4

1 に答える 1

1

理由はわかりませんが、existsnode で「=1」ではなく「!=0」を指定すると機能します。

select("tab.myxml.getclobval() myxml").
from("my_table tab").
where("tab.myxml.existsnode(:xp) != 0", :xp=>"//MyNode")
于 2013-07-22T22:44:40.913 に答える