« Mac De PL/SQL RSS Reader #10 | トップページ | Mac De PL/SQL RSS Reader #12 »

2006年10月 7日 (土) / Author : Hiroshi Sekiguchi.

Mac De PL/SQL RSS Reader #11

PL/SQLで RSS Readerの続きです。

feedの日付/時間は、rfc822または、rfc3339に準拠ということだった。
今回は、元のタイムゾーンは重要ではないので、timestamp with local time zone型に変換して持つことにした。

まず、暫定だがrfc822向けに、rfc822_dateStrToTimestampLTZ()というストアドファンクションを作成した。
rfc822形式の日時文字列をOracle10g の Timestamp with local time zone型に変換するストアドファンクションである。

尚、rfc822のタイムゾーンとして、

     zone        =  "UT"  / "GMT"

/ "EST" / "EDT"
/ "CST" / "CDT"
/ "MST" / "MDT"
/ "PST" / "PDT"
/ 1ALPHA

/ ( ("+" / "-") 4DIGIT )

と規定されているが、"UT"及び、夏時間(*DT)、英字1文字以外についてのみ実装した。(Oracle10gのto_timestamp_tz()関数で指定できるタイムゾーンリージョン "GMT"/"EST"/"CST"/"MST"/"PST" だけに対応した。"UT"、夏時間、英字1文字、または、上記、以外のタイムゾーンが設定されているような状況があれば、その時に考えることに。ちなみに、私が購読しているblogのfeedでは、"GMT"しか利用されていないのも理由の一つである。)

Oracle10gで指定できるタイムゾーンリージョンは以下のようにして確認できる。詳細は、「マニュアル「Oracle10 database SQLクイック・リファレンス 10g」を参照のこと

SYS> select
2 unique tzname
3 from
4 v$timezone_names
5 where
6 tzname in (
7 'UT','GMT','EST','EDT','CST','CDT','MST','MDT','PST','PDT'
8 )
9 or length(tzname)=1;


TZNAME
----------------------------------------------------------------
CST
EST
GMT
MST
PST

SYS>

今日はここまで。次回は、上記仕様で作成したストアドファンクションのテスト及び、ソースを載せる予定。



2006/10/8追記。

SQLリファレンスの夏時間に関する記述を見ると、OracleのTimestamp with time zone型に関して、タイムゾーンリージョンを指定すると夏時間を考慮した変換がなされるとある。


聞いている曲:うん〜〜〜 iTunesで聞いているのは、Internet Radioなので、曲紹介はなし。
      ちなみに、聞いているInternet Radioは、 SmoothJazz.com

| |

トラックバック


この記事へのトラックバック一覧です: Mac De PL/SQL RSS Reader #11:

コメント

コメントを書く