|
|
|
|
ブロック構造 |
|
Declare
-- 宣言
Begin
-- 代入文
-- 制御構文
-- SQL文
-- カーソル文
Exception
-- 例外処理
End; |
|
|
小文字と大文字 |
|
SQLに記述する句、演算子は大文字、小文字を問いません。例えば、
select * from T_テーブル名
Select * From T_テーブル名
SELETE * FROM T_テーブル名
は、全て同じ働きをします。 |
|
|
文字列 |
|
シングルクォーテーション1つ(引用符)で文字列を囲みます。
シングルクォーテーションをリテラルとして指定する場合は、シングルクォーテーションを重ねて記述します。、「''」でシングルクォーテーション1つ分になります。
'HELLO WORLD' |
|
注釈 |
|
1行のコメント
-- ハイフン(-)2つ
複数行のコメント
/* */ /*と */で囲む |
|
変数 |
|
BINARY_INTEGER
NUMBER
PLS_INTEGER
CHAR
VARCHAR2
LONG
BOOLEAN
DATE
記述例
min_salary NUMBER(10);
job_title VARCHAR2(100);
tanka NUMBER(5,2) := 1.05; -- 値の代入
start_date DATE := SYSDATE;
%type
表のデータ型を複製します。
st_job_id jobs.job_id%TYPE;
%rowtype
表の構造の定義を複製します。
rec_jobs jobs%ROWTYPE;
カーソルの構造の定義を複製します。
CURSOR cur IS SELECT * FROM jobs;
rec_jobs cur%ROWTYPE; |
|
|
変数の代入 |
|
変数と定数は、ブロックまたはサブプログラムに入るたびに初期化されます。デフォルトでは、変数はNULL に初期化されます。変数に値を代入する場合は、代入文を使用します。
bonus := saraly * 2.25;
SQL 問合せ結果のPL/SQL 変数への代入
SELECT 文を使用しても変数に値を代入できます。選択リストの項目ごとに、対応する型互換の変数がINTO リストに存在している必要があります。
Declare
emp_name first_name%TYPE;
wages NUMBER(7,2);
Begin
SELECT first_name, saraly INTO emp_name, wages FROM employee
whwre employee_id = '1000';
End; |
|
|
演算子 |
|
:= 代入
+ 加算
- 減算
* 乗算
/ 除算
** 指数
|| 連結
=> 結合
.. 範囲
= 等しい
< より小さい
> より大きい
<= 以下
>= 以上
<> 等しくない
!= 等しくない
~= 等しくない
^= 不明
not
is null
like
bitween
in
and
or
<< ラベル開始
>> ラベル終了 |
|
サンプルプログラム |
|
以下に示すのは、テニス・ラケットの注文を処理するプログラムです。このプログラムは、まずテニス・ラケットの在庫数を格納するNUMBER 型の変数を宣言しています。次に、inventory
という名前のデータベース表から在庫数を取り出します。在庫数がゼロよりも多ければ、プログラムは表を更新し、purchase_record という名前の別の表に購入レコードを挿入します。在庫数がゼロ以下の場合は、表purchase_record
に在庫切れレコードを挿入します。
-- available online in file 'examp1' Declare
qty_on_hand NUMBER(5);
Begin
SELECT quantity INTO qty_on_hand FROM inventory
WHERE product = 'TENNIS RACKET';
IF qty_on_hand > 0 THEN -- check quantity
UPDATE inventory SET quantity = quantity - 1 WHERE product = 'TENNIS
RACKET';
INSERT INTO purchase_record VALUES ('Tennis racket purchased', sysdate);
ELSE
INSERT INTO purchase_record VALUES ('Out of tennis rackets', sysdate);
END IF;
COMMIT; End;
Oracle PL/SQL ユーザーズ・ガイドおよびリファレンスより引用 |
|
|
プログラムの保存 |
|
プログラムの拡張子は"SQL"とします。プログラムは作業中のディレクトリーに置きます。
Filename.sql |