目次
ふりかえり

筆者
本記事は、SQLの基本、実務使用例編になります。
SQLの基礎に関しましては、
【初学者必見!】SQLの超基礎編の記事をご覧くださいませ。

A子
本編に入ります!
「PL/SQL」とは?
PL/SQL(ピーエル・エスキューエル)とは、Oracle独自のプログラミング言語で、通常のSQLに「繰り返し処理」「条件分岐」「変数」などの機能を追加したものです。
SQLが「1つずつ命令を実行する」のに対し、
PL/SQLは「複数の命令をまとめて自動で処理できる」という点が大きな違いです。
PL/SQLプロシージャとは?
PL/SQLで書かれた**ひとまとまりの処理(命令のかたまり)**を「プロシージャ(procedure)」と呼びます。
- 「何かを登録する処理」
- 「複数のテーブルを更新する処理」
- 「ループやif文を含む複雑な処理」
などを、名前を付けて保存して、呼び出して使えるようにしたものです。
PL/SQLプロシージャの基本構造
create or replace procedure プロシージャ名 is
begin
-- 実行したい処理
end;
/
実務レベルの使用例を見ていこう!

筆者
実際に、SQLを使用してデータを確認していきましょう。
SQLに関しては以下を使用して解説していきます。
create table文、select文、insert文、update文、delete文、
drop table文、につきましては、過去にアップロードした
【初学者必見!】SQLの超基礎編の記事をご覧くださいませ。

A子
目次の、「ふりかえり」のところにそれぞれの記事のリンクが
貼ってあるよ!
または、サイドバーのカテゴリーにSQLがあるから、そちらからでも
参照できます!
Oracle Live SQLで実行していきます!
今回、実行するSQL
create table 申請情報 (
STAFF_NO varchar2(10) not null, -- 職員番号(文字型)
APPLI_DATE date, -- 申請年月日(日時)
constraint PK_申請情報 primary key (STAFF_NO)
);
実例:1~10のデータを一括登録するプロシージャ
create or replace procedure Insert申請情報 is
begin
for i in 1..10 loop
insert into 申請情報 (STAFF_NO, APPLI_DATE)
values (to_char(i), sysdate);
end loop;
end;
/
解説:
| 部分 | 意味 |
|---|---|
create or replace procedure | プロシージャを作成(または上書き) |
Insert申請情報 | プロシージャの名前 |
begin ~ end; | 処理の本体 |
for i in 1..10 loop | 1〜10をループ |
to_char(i) | 数値を文字列に変換(VARCHAR2列に合わせる) |
sysdate | システム日付(現在の日時) |
/ | 最後に必須。SQL Developerなどでプロシージャを確定するため |
▶ 呼び出し方(実行)
作ったプロシージャは、次のようにして実行します:
begin
Insert申請情報;
end;
/
よくある使い方
- データの一括登録や一括削除
- 集計・更新処理を1回でまとめて実行
- バッチ処理としてスケジュール実行も可能
挿入されたデータの確認SQL
select *
from 申請情報
where to_number(STAFF_NO) between 1 and 10
order by to_number(STAFF_NO);

| PL/SQLの特徴 | 説明 |
|---|---|
| Oracle専用の言語 | SQLにプログラム的な処理が加えられる |
| プロシージャ | 命令のかたまりに名前を付けて保存し、あとで呼び出せる |
begin ~ end | 処理のかたまりを囲む基本構文 |
loop, if, exception | ループ・条件分岐・エラー処理などができる |
まとめ

筆者
PL/SQLプロシージャについて解説しました。
次回もお楽しみに!










コメント