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()にしたところ
見難いけど、CSEでXML文書がとれるようになりました♪
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クライアント☆
ポスグレ、Oracle、ODBCでの接続が可能であり、SQLを書きながら試していけるという
すぐれもの(*^_^*)
ちなみにOracleでの接続を行うと、ディクショナリも一覧として表示されるので、
どんなディクショナリがあって、どんなものが含まれてるのかを勉強するのにも
よいものだと思っています。