Table of ContentsPreviousNext

Ispirer             Ispirer


Ispirer SQLWays データベース移行ソフトウェア

変数の宣言

このサブセクションでは、各種データベースでのローカル変数の宣言とSQLWaysによる変換について記述します。

TABLE 17. ローカル変数の宣言
データベース
構文
説明
Oracle
var1 datatype [{:= | DEFAULT } exp1] 
DECLAREステートメントはPL/SQLブロックやサブプログラムの宣言部で変数を宣言するために使用されます。宣言により値の格納領域の割り当て、データ型の指定、格納場所の命名が行われます。
 
キーワード DEFAULT は変数を初期化する代入演算子の代わりに使用されます。
var1 table_name%ROWTYPE 
%ROWTYPE属性はデータベース表の中の行を表すレコード型を提供します。レコードの中のフィールドと、それに対応する行の中の列は、同じ名前とデータ型を持ちます。
 
%ROWTYPE 属性は、変数宣言の中でデータ型指定子として使用できます。%ROWTYPE 属性を使用して宣言された変数は、データ型名を使用して宣言された変数と同じように扱われます。
 
table_name - これは宣言が処理されるときにアクセスする必要があるデータベース表(またはビュー)を識別します。
 
%ROWTYPE属性はデータベース表の行データと同じ構造のレコードを宣言します。レコード中のフィールドを参照するには、ドット表記法を使用します。例えば、deptnoフィールドを参照するには以下の様にします
IF emp_rec.deptno = 20 THEN ... 
特定のフィールドに値を代入する式は、以下のとおりです
emp_rec.sal := average * 1.15; 
 
下の例では、%ROWTYPEはempテーブルからSELECTした行を格納するのに使用されています
emp_rec emp%ROWTYPE;
次の例では、empテーブルから行をSELECTし%ROWTYPEレコードに格納しています
DECLARE 
emp_rec emp%ROWTYPE; 
... 
BEGIN 
SELECT * INTO emp_rec FROM emp WHERE empno = 
my_empno; 
IF (emp_rec.deptno = 20) AND (emp_rec.sal > 2000) THEN 
... 
END IF; 
END; 
 
var1 variable_name | column_name %TYPE 
%TYPE属性は変数のデータタイプを定義するのに使われます。%TYPE属性で宣言された変数は%TYPEの前に記述された変数名またはカラムと同じ属性を得ることができます。
 
variable_name - この変数のデータ型が変数 var1 を宣言するのに使われます
 
column_name - このカラムのデータ型が変数var1を宣言するのに使われます。column_name はカラムが定義されているテーブルまたはビュー名を含む複合句です。
 
: 以下の例ではvar2 は va1 によりNUMBERデータ型として宣言されています
var1 number; 
var2 var1%TYPE; 
 
以下の例では var2 は テーブル tab1 の カラム col1 で宣言されています
 
var2 tab1.col1%TYPE; 
MySQL
DECLARE var1 [, varN]... datatype 
[DEFAULT exp1]	 
DECLARE ステートメントはローカル変数を宣言するのに使われます。
 
DECLAREはBEGIN ... END 複合ステートメントの内部で使用され、他のステートメントより前に記述されなければなりません。
 
変数のスコープは BEGIN ... END ブロックの中です。
Microsoft SQL Server
DECLARE  @var1 [AS] datatype      [ , 
@varN [AS] datatype]  
DECLAREステートメントはプロシージャ本体で変数を宣言するために使用され、その変数が使用されるまでの任意の場所に記述が可能です。
 
宣言後、全ての変数はNULLに初期化されます。
Informix
DEFINE var1 [, varN] datatype 
DEFINEステートメントはローカル変数の宣言に使用されます。
 
DEFINEはストアドプロシージャの中で使用され、他のステートメントの前にステートメントブロックの最初に記述されなければなりません。
 
データタイプ は SERIAL、SERIAL8、BYTE、TEXT以外のものを指定可能
DEFINE var1 [, varN] LIKE 
{table|synonym|view}.column 
LIKE句付きのDEFINEステートメントは宣言済みのテーブルカラムと同様のローカル変数を定義するのに使われます。
 
カラム は既存のテーブルまたはビューの任意のカラム
 
:
もし カラムが SERIAL または SERIAL8 データ型の場合、INT または INT8 変数として宣言されます。


Table of ContentsPreviousNext
Ispirer             Ispirer
Copyright © 1999-2015 Ispirer Systems Ltd. Ispirer and SQLWays are trademarks of Ispirer Systems Ltd. All other product names may be trademarks of the respective companies. All rights reserved.