2015年11月5日木曜日

PLSQL 変数、定数

前回は「Hello World」を直接出力しました。
DECLARE

BEGIN

    SYS.DBMS_OUTPUT.PUT_LINE('Hello World');

END;

今回は「Hello World」を変数に代入して、出力します。
変数はDECLARE部で「変数名 変数型」の形式で宣言します。
変数への値の代入は「変数 := 代入する値」で行います。
DECLARE
    --DECLARE部で変数の宣言を行う
    str VARCHAR2(20);
BEGIN
    --変数へ値の代入は「変数 := 代入する値」
    str := 'Hello World 2'; 
    SYS.DBMS_OUTPUT.PUT_LINE(str);
END;
宣言と同時に初期値を設定することも可能です。
初期値を設定しない場合は、変数の値はnullになります。
DECLARE
    --宣言と同時に初期値設定
    str VARCHAR2(50) := 'Default Hello World';
BEGIN
    SYS.DBMS_OUTPUT.PUT_LINE(str);
END;
変数にNOT NULL制約を指定することも可能です。
変数は初期値を設定しなければ値はnullなので、NOT NULL制約を指定する場合は初期値も同時に設定する必要があります。
DECLARE
    --NOT NULL制約を指定
    str VARCHAR2(50) NOT NULL := 'Default Hello World Not Null';
BEGIN
    SYS.DBMS_OUTPUT.PUT_LINE(str);
END;
CONSTキーワードを指定すると定数になります。
「定数名 CONSTANT データ型 := 定数値」と宣言します。
DECLARE
    --定数宣言
    str CONSTANT VARCHAR2(50) := 'Const Hello World';
BEGIN
    SYS.DBMS_OUTPUT.PUT_LINE(str);
END;
定数なので下記のように定数に値を代入しようとすると、エラーになります。
DECLARE
    --定数宣言
    str CONSTANT VARCHAR2(50) := 'Const Hello World';
BEGIN
    --定数に値を代入しようとするのでエラーになる。
    str := 'Change Const Value';
    SYS.DBMS_OUTPUT.PUT_LINE(str);
END;


【関連】
PLSQL 変数の精度について

0 件のコメント: