第12回:ストアドプロシージャの移行(4) (1/2)

まるごと PostgreSQL!
PostgreSQLとOracleによるデータベース相互移行マニュアル

第12回:ストアドプロシージャの移行(4)
著者:奥畑 裕樹(OKUHATA, Hiroki)   2005/12/26
1   2  次のページ
カーソル処理

   カーソルの宣言は、単純にCURSOR句とカーソル名の順番を入れ替えればOKです。
Oracleのカーソル宣言(DECLAREブロック中で)
CURSOR C1 IS SELECT ... ;
PostgreSQLのカーソル宣言(DECLAREブロック中で)
C1 CURSOR IS SELECT ... ;
カーソル属性

   Oracleには、次のカーソル属性があります。

  • %FOUND
  • %ISOPEN
  • %NOTFOUND
  • %ROWCOUNT
   PostgreSQLには、%FOUND属性に相当するFOUND変数があります。%NOTFOUND属性は、FOUND変数の否定、つまりNOT FOUNDとして擬似的にサポートされます。%ISOPENおよび%ROWCOUNTについては、サポートされていませんが、等価な変数を用意すれば擬似的に対応は可能です。

   また、PostgreSQLのFOUND変数は、すべてのカーソルで共通な特殊変数として実装されています。どの時点でもNULLや例外にはならず、表6にあるようなOracleのFOUND属性の振る舞いと異なりますので注意が必要です。

表6:Oracleにおけるカーソル属性の振る舞い
表6:Oracleにおけるカーソル属性の振る舞い
(画像をクリックすると別ウィンドウに拡大表示します)

   また、PostgreSQLのFOUND変数は、どのカーソルかに関係なく、常に直前のフェッチに対する結果を示します。そのため、複数のカーソルを同時に開いているときは、FOUND変数がどのカーソルのフェッチ結果を示しているのかに注意する必要があります。

1   2  次のページ

書籍紹介
まるごと PostgreSQL! Vol.1
まるごと PostgreSQL! Vol.1 日本での市場シェアNo.1(オープンソースRDBMS部門)データベースソフトPostgreSQLの最新情報を、開発メンバーを含む豪華執筆陣が多面的かつ詳細に解説します。PostgreSQL用クラスタリング/レプリケーションソフト、PostgreSQL⇔Oracle移行、PostgreSQLによる大規模サイト構築法、新バージョンPostgreSQL 8.0先行レビュー、PostgreSQL用.NETデータプロバイダ等々、他では読めない貴重な記事が満載です。

発売日:2004/12/08発売
定価:\1,890(本体 \1,800+税)
奥畑 裕樹(OKUHATA, Hiroki)
著者プロフィール
奥畑 裕樹(OKUHATA, Hiroki)
Javaとオープンソース技術を得意とする技術コンサルタント。最近のテーマは、ソフトウェア開発の全体最適をはかること。気が付けば、10才のときにプログラミングを始めて以来、常に何かを作っている…。


INDEX
第12回:ストアドプロシージャの移行(4)
カーソル処理
  フェッチ
PostgreSQLとOracleによるデータベース相互移行マニュアル
第1回 データベース移行
第2回 データの移行(1)
第3回 データの移行(2)
第4回 SQL文の移行(1)
第5回 SQL文の移行(2)
第6回 SSQL文の移行(3)
第7回 ファンクションの移行(1)
第8回 ファンクションの移行(2)
第9回 ストアドプロシージャの移行(1)
第10回 ストアドプロシージャの移行(2)
第11回 ストアドプロシージャの移行(3)
第12回 ストアドプロシージャの移行(4)
第13回 まとめ

人気記事トップ10

人気記事ランキングをもっと見る