PL/SQLでカーソルを使う(基本編):超入門「PL/SQL」(6)(1/3 ページ)
本連載は、「PL/SQL(Procedure Language/Structured Query Language)」を理解し、活用していくための実践講座です。今回から「カーソル」について2回に分けて解説します。
目次
本連載は、Oracle Database向けにデータベース言語 SQL(Structured Query Language)を拡張したプログラミング言語である「PL/SQL(Procedure Language/Structured Query Language)」を理解し、活用するための実践講座です。SQLは知っているけれど、OracleでのPL/SQLは初めてという人向けに、機能の概要と具体的な書き方を解説します。
PL/SQLはOracleが開発したプログラミング言語であるため、Oracle Databaseに格納されているデータを効率的に処理できるという利点があります。SELECT文によって取得した行データをPL/SQLの変数に代入して処理したい場合、「カーソル」機能を使用します。カーソルを使用するには一連の指定が必要になるため、基礎編と応用編の2回に分けて解説します。カーソルはPL/SQLの中でも非常に重要な機能です。しっかり押さえておきましょう。
カーソル処理の概要
カーソルを使用すると、Oracle Databaseの表から取り出した複数行を処理できます。取り出す行数が1行、または0行の場合でも問題ありません。
では初めに、カーソル処理の内部的な流れを以下の図で解説します。まず、任意のデータを取り出すSELECT文をカーソルに対応付けます(図1)。
カーソルに対応付けたSELECT文をオープン(実行)すると、検索結果がメモリ上に保持されます(図2)。これを「結果セット」と言います。
結果セットの1行目を取り出し、用意しておいた変数に代入します(図3)。
LOOP文を用い、2行目から最終行まで図3と同様に取り出して変数に代入する処理を繰り返します(図4)。
このように、カーソルに対応付けたSELECT文を実行して結果セットを識別した後、結果セットから1行を取り出し変数に代入します。その後、LOOP文を併用して変数に代入する処理を繰り返し、最終的に結果セットの全ての行を変数に代入する、という流れとなります。
では、このような処理を行うための記述方法を次に解説します。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- DBエンジンを最大限に生かすバッチアプリの作り方
第1回では、バッチアプリケーションを設計するうえで考慮すべき4つのポイントについて解説しました。今回は、Oracleデータベースを最大限に利用したバッチアプリケーションの実装テクニックについて解説します。 - ODTを使ったVisual StudioからのPL/SQL開発
オラクル社が提供する3つの.NET環境用開発ツール「ODP.NET」「ODT」「ODE.NET」。Oracle 10gリリース2に対応した最新版を使って、Oracleデータベースを前提とした.NETアプリケーションの開発手法を解説する。(編集部) - 更新/挿入/削除のSQLを高速化する3つの技とは?
本連載では、Oracleデータベースのパフォーマンス・チューニングの中から、特にSQLのチューニングに注目して、実践レベルの手法を解説する。読者はOracleデータベースのアーキテクチャを理解し、運用管理の実務経験を積んでいることが望ましい。対象とするバージョンは現状で広く使われているOracle9iの機能を基本とするが、Oracle 10gで有効な情報も随時紹介していく。(編集局) - 【Oracle Database】忘れていませんか? 「アラートログ調査」に必要な、たった3つのキホン
データベース管理システムの運用でトラブルが発生したらどうするか。データベースサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は基本編として「アラートログの調査で押さえるべき3つのポイント」を解説します。【Oracle Database 12c対応版】