DB2のスクロール可能なカーソルとスクロール不可能なカーソルの主な違いは、スクロール可能なカーソルは結果セット内をランダムに移動するために使用され、スクロール不可能なカーソルは結果セット内を順次前進するために使用されることである。
DB2 は IBM 社が開発したリレーショナルデータベース管理システムです。
大量のデータを扱うことができる高性能なデータベースです。
DB2 を使って複数のユーザーが同時にデータにアクセスすることができる。
カーソルは DB2 の概念です。
SQL 文を実行する際にシステムメモリに作成される一時的な作業領域です。
データベースからデータを格納し、データを操作することができます。
カーソルは一行しか処理できませんが、一度に複数行を保持することができます。
DB2 では、プログラマはカーソルをスクロール可能または非スクロール可能にすることができます。
DB2 のスクロール可能なカーソルとは
プログラマは、スクロール可能なカーソルを宣言することによって作成することができます。
カーソルを配置したい場所を指定するFETCH文を実行することができます。
カーソルを更新する必要がある場合、スクロール可能なカーソルがあるはずです。
また、スクロール可能なカーソルで、後方へ移動したり、結果テーブルの特定の位置に移動したりすることも可能である。
スクロール可能なカーソルをSENSITIVEとして宣言すると、最新のデータのみが表示される。
さらに、プログラマは、スクロール可能な場合のみ、更新可能なカーソルの宣言でORDER BY句を使用することができます。
DB2 のスクロールしないカーソルとは
非スクロール可能カーソルは、結果テーブルの前方へ次々と移動します。
そのため、非スクロールカーソルで結果表の特定の位置に移動したり、後方から行を取得することはできません。
アプリケーションでそのカーソルを開くと、カーソルは最初の行の前に位置します。
アプリケーションが最初のFETCH文を実行するとき、カーソルは最初の行に配置されます。
しかし、アプリケーションがそれ以降のFETCH文を実行するとき、カーソルはすべてのFETCHで1行先に移動します。
アプリケーションがPositioned UPDATEまたはPositioned DELETE文を実行した後、カーソルは結果テーブルの現在の行に留まります。
DB2 のスクロール可能なカーソルとスクロール不可能なカーソルの違い
定義
スクロール可能なカーソルは、DB2で利用可能なカーソルタイプで、アプリケーションが小から中レベルの結果テーブルにアクセスすることを可能にします。
一方、非スクロール可能カーソルは、DB2で利用可能なカーソルタイプで、アプリケーションが大きな結果テーブルにアクセスすることを可能にします。
これがスクロール可能カーソルと非スクロール可能カーソルの主な違いです。
目的
プログラマは、スクロール可能なカーソルを使用して、ランダムに結果セットを通過することができ、一方、非スクロール可能なカーソルを使用して、結果テーブルのデータを通して順次前進することができます。
したがって、これはスクロール可能なカーソルとそうでないカーソルの大きな違いである。
加工
さらに、スクロール可能なカーソルは、スクロール不可能なカーソルに比べてより多くのDB2処理を必要とします。
アプリケーション
また、スクロール可能なカーソルとそうでないカーソルのもう一つの違いは、そのアプリケーションである。
スクロール可能なカーソルは、アプリケーションが小から中程度のレベルの結果テーブルを必要とする場合に適しており、非スクロール可能なカーソルは、アプリケーションが大きな結果テーブルを必要とする場合に適している。
結論
DB2では、プログラマはSCROLL句を含むか含まないかによって、カーソルをスクロール可能か不可能かを宣言することができます。
DB2のスクロール可能なカーソルとスクロール不可能なカーソルの違いは、スクロール可能なカーソルは結果セット内をランダムに移動し、スクロール不可能なカーソルは結果セット内を順次進むために使用されることです。