TOP書籍連動> カーソル処理
まるごと 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)
カーソル処理
  フェッチ