宣言部と変数の定義(その1):超入門「PL/SQL」(2)(1/3 ページ)
本連載は、「PL/SQL(Procedure Language/Structured Query Language)」を理解し、活用していくための実践講座です。今回は「PL/SQLブロックの宣言部と変数の定義」を解説します。
目次
本連載は、Oracle Database向けにデータベース言語 SQL(Structured Query Language)を拡張したプログラミング言語である「PL/SQL(Procedure Language/Structured Query Language)」を理解し、活用していくための実践講座です。SQLは知っているけれど、OracleでのPL/SQLは初めてという人向けに、機能の概要と具体的な書き方を解説していきます。
今回はPL/SQLブロックを具体的に記述していくための、「変数の定義方法」の基礎を解説します。変数はPL/SQLブロック内で必ずと言っていいほど使用しますので、しっかり理解しておきましょう。
宣言部と変数の定義
DECLAREキーワード以降の宣言部では、実行部や例外処理部で使うオブジェクトを定義します。主に以下のオブジェクトを定義します。
- 変数
- 定数
- カーソル
- 例外
今回と次回はこのうち、「変数の定義」を中心に説明します。カーソルと例外については、それ以降の回で解説する予定です。
「変数」とは
PL/SQLの手続き処理では、Oracle Databaseの表から取り出したデータや計算結果などを一時的に保存しておきたい場合がよくあります。このような値をPL/SQLブロック内で保存しておく場所が「変数」です(図1)。変数はその名の通り、自由に上書きして再利用できます。
変数を定義する書式は以下の通りです。
<変数名> <データ型> [ NOT NULL ] [ { := | DEFAULT } 値 ] ;
変数名は命名規則に従っていれば自由に定義できます(命名規則の詳細は後述します)。また、変数に代入したい値の属性に合わせて適切なデータ型を定義します。この他、以下の内容にも注意してください。
- デフォルトでは、変数はNULL状態である
- 「NOT NULL」オプションで、変数がNULL状態になることを禁止できる(この場合、初期値の設定が必須となる)
- 代入演算子(:=)、または「DEFAULT」キーワードで初期値を設定できる
記入例は以下の通りです。
DECLARE v_no NUMBER(8) := 1; /* 変数v_noをNUMBER型で定義し、初期値1を代入 */ BEGIN NULL; /* 何もせずに次に制御を移す */ END; /
この例では、宣言部で変数「v_no」を「NUMBER型」で定義し、代入演算子「:=」で初期値「1」を代入。その後、実行部でNULL文を指定し、何もせずにPL/SQLブロックを終了した記述となっています。NULL文については、次回以降に解説します。
ここで、初めて具体的なPL/SQLブロックの例を紹介したので、併せてPL/SQLブロックを記述する上での基本的な注意点も説明します。それは、以下の通りです。
- 「;」(セミコロン)で、処理ごとの文の終わりを示す
- SQL*Plusで実行する時は、PL/SQLブロックの最後に「/」(スラッシュ)を記述する
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対応版】