SPLは、ブロック構造言語である。 ブロックに表示される最初のセクションは、宣言セクションです。 宣言セクションには、ブロックに含まれるSPLステートメントで使用できる変数、カーソル、およびその他の型の定義が含まれます。
通常、ブロックで使用されるすべての変数は、ブロックの宣言セクションで宣言する必要があります。 変数宣言は、変数に割り当てられた名前と変数のデータ型で構成されます。 オプションで、変数は変数宣言のデフォルト値に初期化できます。
次の例は、変数宣言の一般的な構文を示しています。
名前タイプ [ { := | DEFAULT } {式 | NULL } ];
- nameは変数に割り当てられた識別子です。
- typeは、変数に割り当てられたデータ型です。
[ := expression] が指定されている場合、ブロックが入力されたときに変数に割り当てられる初期値を指定します。 句が指定されていない場合、変数はSQL NULL値に初期化されます。
デフォルト値は、ブロックが入力されるたびに評価されます。 たとえば、SYSDATEをDATE型の変数に割り当てると、その変数には、プロシージャまたは関数がプリコンパイルされた時刻ではなく、現在の呼び出しの時刻が表示されます。
次の手順では、文字列式と数値式で構成されるデフォルト値を使用する変数宣言を示します。
CREATE OR REPLACE PROCEDURE dept_salary_rpt (
p_deptno番号
)
IS
todays_date日付:= SYSDATE;
rpt_title VARCHAR2(60) := '部門のレポート#' | | p_deptno
| | 'on' | | todays_date;
base_sal INTEGER := 35525;
base_comm_rate番号:= 1.33333;
base_annual NUMBER := ROUND(base_sal * base_comm_rate、2);
開始
DBMS_OUTPUT.PUT_LINE(rpt_title);
DBMS_OUTPUT.PUT_LINE('Base Annual Salary: '| | base_annual);
エンド;
上記の手順の次の出力は、変数宣言のデフォルト値が実際に変数に割り当てられていることを示しています。
EXEC dept_salary_rpt(20);
10-JUL-07 16:44:45の部門 #20のレポート
基本年収: 47366.55