« Mac De Oracle : プロフィールの画像再度変更?! | トップページ | Oracle de XMLDB #11 - 三度脱線のおまけ »

2007年11月28日 (水) / Author : Hiroshi Sekiguchi.

Oracle de XMLDB #10 - 三度脱線

XMLマスタープロフェッショナル(データベース)の開始も間近だし、「XMLマスター:プロフェッショナル(データベース)」再受験無料プログラム」もあるので試験勉強を中心にと思いつつ、気になることがあると試したくなる性分なので、三たび脱線。
SQL/XMLのCOLUMNS句も確認しておこうかなと。。いうことで。。。

まずACLの確認。(今回は、OTN-JフォーラムのFEEDを材料にしてみた。。)

もしACLが作成されていない、又は、接続先ホストが割り当てられていない場合はdbms_network_acl_adminパッケージ定義/割当してくださいませ。

SYS> select acl,host from dba_network_acls;

ACL HOST
---------------------------------------- --------------------------------------------------
/sys/acls/feeds.xml otn.oracle.co.jp

SYS> select principal,acl,privilege,is_grant from dba_network_acl_privileges
2 where principal='SCOTT';

PRINCIPAL ACL PRIVILE IS_GRANT
---------- ---------------------------------------- ------- --------------------
SCOTT /sys/acls/feeds.xml connect true
SCOTT /sys/acls/feeds.xml resolve true

SYS>
SYS> conn scott/tiger
接続されました。
SCOTT> l
1 select *
2 from
3 xmltable(
4 xmlnamespaces('http://www.jivesoftware.com/xmlns/jiveforums/rss' as "jf"),
5 'for $i in /rss/channel/item
6 return
7 <rss>{$i/title}{$i/jf:creationDate}{$i/jf:author}{$i/jf:replyCount}{$i/link}</rss>'
8 passing httpuritype('http://otn.oracle.co.jp/forum/rss/rssmessages.jspa?categoryID=2').getXML()
9 columns
10 title varchar2(100) path '/rss/title',
11 pubDate varchar2(30) path '/rss/jf:creationDate',
12 author varchar2(50) path '/rss/jf:author',
13 replyCount integer path '/rss/jf:replyCount',
14 link varchar2(200) path '/rss/link'
15 )
16 where
17 title like '%日付のインクリメント%'
18 order by
19* substr(pubdate,instr(pubdate,','))
SCOTT> /

TITLE PUBDATE AUTHOR REPLYCOUNT LINK
---------------------------------------- ------------------------------ -------------------- ---------- ------------------------------------------------------------------------------------------
日付のインクリメント 火, 27 11 2007 18:02:44 +0900 tahakoda 2 http://otn.oracle.co.jp/forum/thread.jspa?messageID=35020441&tstart=0#35020441
Re: 日付のインクリメント 火, 27 11 2007 20:35:31 +0900 茶太郎 0 http://otn.oracle.co.jp/forum/thread.jspa?messageID=35020443&tstart=0#35020443
Re: 日付のインクリメント 水, 28 11 2007 06:44:47 +0900 discus 0 http://otn.oracle.co.jp/forum/thread.jspa?messageID=35020450&tstart=0#35020450

SCOTT>

尚、HTTPURITYPE型でマルチバイトを含むXML文書を参照する場合はXML文書の文字エンコーディングと同じデータベースキャラクタセットでないと文字化け?の影響と思われるXMLパースエラーが発生するので要注意。


前々回のエントリにも追記したのだが・・・・

XML文書の文字エンコーディングとデータベースキャラクタセットが異なる場合は、

Mac De PL/SQL RSS Reader #3

のようにUTL_HTTPパッケージを利用して対処することもできるのでどうしても文字エンコーディングが異なる環境で行うなら自作でユーザ定義型を作るしか無さそう。。。。

いまのところXMLDBなどを利用して各種Webサービスと連携するのならデータベースキャラクタセットはAL32UTF8にしておくのがいちばんよさそうだ。(オラクルさんも新規データベースはAL32UTF8を推奨しているし。。

| |

トラックバック


この記事へのトラックバック一覧です: Oracle de XMLDB #10 - 三度脱線:

コメント

コメントを書く