CSEでLet's write sql for Oracle XMLDB

OracleでのXMLDBからデータをSelectするのに、CSEじゃ使えなかった…。

というのは…
select extract(object_value, '/root/hoge', '名前空間') from xmldb_sample
などと記載すると、XMLとして返ってくるために、CSEの表形式の部分には
空で出力されていたりしたので、sqlplusから
set long 10000 pages 0
とコマンドうってからXML出力をしてデータの確認とかしてた(^_^;)

だけど、Linuxだと長いXML文書のSelectがなぜかできてないとかなどの
問題もあり
USAのOracle掲示板を見てたところ、getClobVal()などとしてClobで取得したいんだけど…
みたいな質問があったので、それをgetStringVal()にしたところ
見難いけど、CSEXML文書がとれるようになりました♪

select value(x).getStringVal() from xml_sample x

select x.object_value.getStringVal() from xml_sample x

実行速度としては下の方が早いみたい。

このSQLであれば、SQLDeveloperやSIオブジェクトブラウザでも
XML文書は取得できそうです。

まぁ相変わらず見難いですけど…

XML文書をがばっと欲しければSQLPLUSにて

select * from xml_sample
をspoolした方が見やすいです(-_-;)

ちなみに select extract(object_value, '/') from xml_sample
だと階層とかわからないのでここは*の方がよいですよ〜。

CSE…知る人ぞ知るフリーソフトなDBクライアント☆
ポスグレ、OracleODBCでの接続が可能であり、SQLを書きながら試していけるという
すぐれもの(*^_^*)

ちなみにOracleでの接続を行うと、ディクショナリも一覧として表示されるので、
どんなディクショナリがあって、どんなものが含まれてるのかを勉強するのにも
よいものだと思っています。