PL/SQLでも「変数」や「固定値」を使うことができます。
変数を使うには、「宣言部」(DECLARE)で名前を付ける必要があります。
変数宣言の仕方
数値型
1 2 |
DECLARE num NUMBER; |
数値型には、他にも「BINARY_INTEGER」や「BINARY_FLOAT」等色々ありますが、一般的にはNUMBER型が使用されるケースが一番多いです。
文字列型
1 2 |
DECLARE str VARCHAR2(5); |
他にも、「CHAR」や「LONG」等も使うことができますが、おそらく一番使う機会の多いのは可変長文字列型である「VARCHAR2」でしょう。
日付型
主に下記二つの型が良く使われます。
データ型 | 説明 |
---|---|
DATE | 固定長の日時 |
TIMESTAMP | 小数秒を含む日時 |
他には、「TRUE」や「FALSE」を含む「ブール型」なんかもあります。
なお、変数を宣言しただけでは、いずれのデータ型でも、まだ値はNULLの状態になります。
変数の命名規則
下記のルールがあります。
- 変数名の1文字目は、数値(0~9)、アンダースコア(_)、シャープ(#)が使用できないが、2文字目以降なら使用できる。
- 変数名の長さは30文字まで
- 大文字、小文字は区別しない。
- 予約語は使用できない。
予約語とは?
プログラム内で、キーワードとして既に使用されている語になります。
例えば、「DECLARE NUMBER;」なんて指定すると、「DECLARE」は宣言部として使われている単語なのでエラーになってしまいます。
変数への代入の仕方
数値の場合
普通に代入
1 2 3 4 5 |
DECLARE num NUMBER; BEGIN num := 10; END; |
数値型から数値型へ代入
1 2 3 4 5 6 7 |
DECLARE num NUMBER; num2 NUMBER; BEGIN num := 10; num2 := num * 2; END; |
文字型の場合
普通に代入
1 2 3 4 5 |
DECLARE str VARCHAR2(15); BEGIN str := 'こんにちは'; END; |
変数の宣言と値の代入を同時に行う。
例1:普通に初期値を入れる。
1 2 3 4 5 |
DECLARE str VARCHAR2(15) := 'こんにちは'; BEGIN DBMS_OUTPUT.PUT_LINE(str); END; |
例2:DEFAULT句を使う。
1 2 3 4 5 |
DECLARE str VARCHAR2(15) DEFAULT 'こんにちは'; BEGIN DBMS_OUTPUT.PUT_LINE(str); END; |
定数の宣言
1 2 3 4 5 |
DECLARE str CONSTANT VARCHAR2(15) DEFAULT 'こんにちは'; BEGIN DBMS_OUTPUT.PUT_LINE(str); END; |
CONSTANT句を使います。
注意点としては、必ず定数は初期値として代入するようにしましょう。でなければ、エラーになってしまいます。
定数は直接書かれているプログラムに比べて、可読性や、保守性を上げてくれるので積極的に使うようにしましょう。
この記事へのコメントはありません。