<< OpenJPAがApacheトッププロジェクトに | main | Eclipse 3.3 リリース >>

Viper2の新機能 - 他RDBMSとの互換機能

Chris Eatonさんのblogより

- Ask and you shall receive (An Expert's Guide to DB2 Technology)

上記を読むとDB2 Viper2の新機能としてDECODE文がサポートされる事が書かれています。DECODE文はCASE文のサブセット的な機能なので、新機能追加というよりはシンタックスシュガーなのですが、他RDBMSからの移植時に便利ですね。

で、上記エントリのコメント欄からたどれるページを読むと、Viper 2ではこういう他RDBMSからの移植性向上のための機能が多数追加されるようです。書いているのは開発者のSergeさんです。

以下引用しつつ少し解説します。多くがOracleとの互換性向上を狙ったものですね。

1. ** DUAL
Always works without prefixing a schema

DUAL表はOracleで「常に使える小さい表」として関数のみなどをSELECTしたい時にダミーの表として使われるためのものです。DB2では従来よりSYSIBM.SYSDUMMY1が使用されていましたが、DUALは「カレントスキーマに関係なく使える」という特徴があります。(DB2やOracleは、SELECT文でFROMを省略できません)

2. ** ROWNUM

ROWNUMはアンサーセットの論理的な行番号ですね。アンサーセットの一部分を取り出す際などに使用されます。これまでDB2では自分でOLAP関数で番号を振るなどしていたのですが、これで楽に書けそうです。

3. ** (+) outer join syntax

(+)で外部結合を書けるようになるシンタックスシュガーです。

4. LEAST/GREATEST/NVL/DECODE

CASE文やCOALESCE文など既存関数へのシンタックスシュガーですね。NVLは嬉しい人も多いのではないでしょうか。

5. TO_DATE/TO_CHAR improvement
DB2 supports most common patterns except those requiring language
awareness

TO_DATE,TO_CHARはこれまでも用意されていたのですが、機能が非常に限定的で、他RDBMSのように色々な変換に使用できませんでした。これが改善されるようです。(こちらに今ちょうど苦労されている方がいらっしゃるようです。Viper 2は間に合わないと思いますが。。)

6. ** CONNECT BY
This is a function drop, performance drop will follow

これも一種のシンタックスシュガーですね。WITHでも同様の処理は書けますが、CONNECT BYの方がタイプ量は少なくなりそうです。

7. A slew of syntactic sugar like:
Seq.NEXTVAL and seq.CURRVAL notation
UNIQUE instead of DISTINCT
MINUS instead of EXCEPT
Unnamed nested subqueries (aka inline views)
"SELECT * FROM (SELECT * FROM T)"
CROSSJOIN
8. BITAND/BITOR/.....

この7,8もシンタックスシュガー多種ですね。7.のUnnamed nested subqueryは、Oracleでいうインラインビューです。DB2でも以前から同様の事ができましたが、その場合は必ず

SELECT ... FROM (SELECT ... FROM) AS T

の"AS T"のように相関名を付ける必要がありましたが、これが無くても良くなるようです。

このように、多くが互換性を意識した「文法サポート」的なものではありますが移植時に便利ですし、ROWNUMのように新機能といって良いものも含まれています。

※2007/07/17追記:
上記の互換機能のいくつかは以下のレジストリ変数をセットしないと有効にならないようです。
db2set DB2_COMPATIBILITY_VECTOR=3F

コメント
「こちら」の者ですm(__)m

貴重なトラックバックありがとうございました。
残念ながら今回の開発にはViper2を用いることができませんが、今後同じような案件があればViper2を採用したいと思います。

  • tatsuparu
  • 2007/06/28 9:33 AM
これは凄いですね。
個人的には頑ななDB2も好きですが
営業的にも絶対プラスですよね。

そういえば持っている人も多い"SQLポケットリファレンス"に
DB2にはDUAL表に相当するものは無い・・という感じに
書かれてるんであきらめちゃった人?も居ると思うんで
こういう対応はいいことですね。
  • acto
  • 2007/07/01 1:21 AM
> tatsuparuさん

コメントありがとうございます。UDFの作成で対応されるのは大変だと思いますが、がんばってください。

> actoさん

コメントありがとうございます。

そうですね。マルチDBMS対応しないといけないアプリケーションを作成されている方もたくさんいらっしゃると思いますので、こういう機能が増えるのは喜ばれるのではと思っています。
  • SIM
  • 2007/07/01 1:50 AM
コメントする(emailやurlは無記入でもOKです)









この記事のトラックバックURL (※SPAM対策のため、元記事のPermalink URLへのリンクがないものはトラックバックされません)
トラックバック
著書
AWSではじめるデータレイク「AWSではじめるデータレイク」
データレイクの本を書きました(共著)
DB2cover_small.jpg
DB2の管理方法を解説した本を書きました。
ad
無料のDb2 Community Edition
リンク集
about this site
recommend
プログラマのためのSQL 第4版
プログラマのためのSQL 第4版 (JUGEMレビュー »)
ジョー・セルコ
名著が第4版として、内容拡充されて発売されました。SQLの考え方を基礎からしっかり学習したい方にお勧めです。
recommend
recommend
WebSphere Application Server 構築・運用バイブル 【WAS8.5/8.0/7.0対応】
WebSphere Application Server 構築・運用バイブル 【WAS8.5/8.0/7.0対応】 (JUGEMレビュー »)
串宮 平恭,達見 圭介,田中 孝清,原口 知子,福崎 哲郎,盛林 哲
WebSphere Application Serverの運用管理本が出ました!WAS v7〜v8.5まで幅広いバージョンに対応しています。
recommend
recommend
Effective Java 第2版 (The Java Series)
Effective Java 第2版 (The Java Series) (JUGEMレビュー »)
Joshua Bloch
すべてのJava開発者必読の書が大幅改訂されて第2版になりました!。
文法などは解説していませんが、Java言語でプログラムを書くにはどういう事に気をつけるべきかという事が非常に端的に、かつ明確な理由とともに解説されています。
第2版ではJava SE 6対応がなされ、第1版で提案してJava SEに取り込まれた部分は整理され、新しい機能であるGenericsやアノテーションについての記述が多数追加されています。以前に増してお勧めできる書になりました。
まだ読んだことが無いJava開発者はぜひ読んでみてください。
recommend
 (JUGEMレビュー »)

基礎的なSQLは書けるようになったけど、今ひとつSQLのルールになんとなくしっくりこない、腑に落ちない。そんな人にお勧めの入門書です。SQLの根底に流れる基本的な考え方をやさしく解説してくれています。(レビューはこちら)
recommend
SQLパズル 第2版 プログラミングが変わる書き方/考え方
SQLパズル 第2版 プログラミングが変わる書き方/考え方 (JUGEMレビュー »)
ジョー・セルコ,Joe Celko
SQL入門を終えて、SQL中級/上級者になりたいと考えている方にぴったりのトレーニング本です(レビューはこちら)
recommend
XML-DB開発 実技コース
XML-DB開発 実技コース (JUGEMレビュー »)
下佐粉 昭,野間 愛一郎,久保 俊彦,高橋 賢司
XML-DBのやさしい入門書です。XMLの基礎から、XPath,XQueryの解説、設計の基礎、Javaでのプログラミング等盛りだくさんの内容です。
recommend
データベースパフォーマンスアップの教科書 基本原理編
データベースパフォーマンスアップの教科書 基本原理編 (JUGEMレビュー »)
エンコアコンサルティング
DBMSの基本的な内部構成、動作についての考え方をやさしく解説してくれています。(レビューはこちら)
recommend
メインフレーム実践ハンドブック z/OS(MVS),MSP,VOS3のしくみと使い方
メインフレーム実践ハンドブック z/OS(MVS),MSP,VOS3のしくみと使い方 (JUGEMレビュー »)
神居 俊哉
メインフレームの技術について、基礎概念から、実践的な使い方までを網羅した初めての解説書です。
recommend
 (JUGEMレビュー »)

CSSの概念/基礎をしっかりと解説してくれるCSS入門書。サイトへの実践的な適用方法も解説されています(レビューはこちら)
recent entries
categories
recent comments
  • Db2 11.5 Base Edition の標準サポート提供は2025年9月30日まで (Standard EditionやAdvanced Editionとは別です)
    sim (02/09)
  • Db2 11.5 Base Edition の標準サポート提供は2025年9月30日まで (Standard EditionやAdvanced Editionとは別です)
    oda (02/07)
  • ORDER BYでNULLを最小に持ってくるには
    通りすがり (03/15)
  • Db2をAWS上に構築する際のヒント&TIPS (2021年2月版)
    Jiyong, Jung (12/09)
  • DB2小ネタ - ALLOW REVERSE SCANS
    meijik (06/24)
  • DB2の正式名称が"Db2"に変更。dashDB for TransactionもDb2 on Cloudに名称変更
    Taco (06/24)
  • DB2でインスタンスを追加で作成するには
    SIM (03/18)
  • DB2でインスタンスを追加で作成するには
    晩衛 (03/17)
  • SQLの学習サイト
    SIM (03/26)
  • SQLの学習サイト
    DB (03/25)
recent trackbacks
archives