プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • SQL
  • 【PL/SQL】導入の基本、プログラムの基本構文について
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【PL/SQL】導入の基本、プログラムの基本構文について

05.20

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

PL/SQLとは?

Oracleが、SQLを独自に拡張したプログラミング言語で、SQLによるデータベース操作と、処理をどちらも行わせることができます。

名前の由来

「非手続き型言語」であるSQLを「手続き型言語(Procedural Language)」にしたことが由来になっています。

「手続き型言語」とは?

命令を逐次実行していき、処理結果に応じて変数の値を変化させるものです。C言語を初めとして多くの言語で活用されています。

普通のSQLに比べて、PL/SQLを使うメリット

パフォーマンスが高い

普通のSQLを使うのであれば、例えば、Javaプログラム内でSQLを作成して、一回一回データベースサーバーに問い合わせる必要があります。

それに比べて、PL/SQLで多くのSQLを発行した場合は、データベースに接続する回数が減るので、ネットワークのオーバーヘッドが非常に小さくし、パフォーマンスを向上することができます。

プログラムの汎用性や移植性が高い

あくまで、Oracle内で使われる言語なので、どの言語からも同じように呼び出すことが可能です。

なので、新しい言語で新しくシステムを作りかえるといった場合でも、簡単にプログラムを移植することができます。

PL/SQLを使用する上での注意点

ただし、下記は注意点といえるでしょう。

他のデータベースサーバーとは互換性がない。

MySQLや、SQLServer等の他のデータベースサーバーとの互換性はないので注意です。

システムのリプレイスで、格納するDBサーバーが変わってしまった場合は、他のSQL言語に書き直す必要があります。

PL/SQLの文法もバージョンアップしているので、下位互換性はない。

PL/SQLは、上位互換性はありますが、下位のバージョンでは動作しない場合があるので注意が必要です。

PL/SQLの基本構文

ブロックの基本構造

PL/SQLのブロックの基本構造としては、下記になります。

1
2
3
4
5
6
DECLARE(宣言部:省略可能)
宣言部
BEGIN(処理部:必須)
  処理部
EXCEPTION(例外処理部:省略可能)
END;

構文の意味

ブロック構文 説明
DECLARE(宣言部:省略可能) プログラムで使用する変数や、定数を宣言することが可能です。
BEGIN(処理部:必須) プログラムの具体的な内容を記述します。
EXCEPTION(例外処理部:省略可能) プログラムでエラーが発生した場合の処理を記述します。

 ブロックのネスト構造

処理部は、下記のようにネストさせて記述することが可能です。(最大255回までネスとすることができます。)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DECLARE(宣言部:省略可能)
  宣言部
BEGIN(処理部:必須)
  処理部
  DECLARE(宣言部:省略可能)
    宣言部
  BEGIN(処理部:必須)
    処理部
  EXCEPTION(例外処理部:省略可能)
  END;
EXCEPTION(処理部:省略可能)
  DECLARE(宣言部:省略可能)
    宣言部
  BEGIN(処理部:必須)
    処理部
  EXCEPTION(例外処理部:省略可能)
  END;
END;

なお、内部のブロックで宣言した変数や定数は、ネストしたブロック内でのみしか使用できず、外部からは使用できないので注意です。

コメント

PL/SQLでも、普通のプログラミング言語と同じようにプログラム内にコメントをすることができます。

行コメント

「--」で始まる行は、単一行のコメントを表します。

1
--行コメントです。

ブロックコメント

「/* ~ */」で囲まれたブロックは、複数行のコメントを表します。

1
2
3
4
/*
ブロックコメント
です。
*/

スポンサーリンク
  • 2018 05.20
  • miyabisan2
  • コメントを書く
  • Oracle, SQL
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2018 04.28

    【Oracle】サーバー側のリモート接続設定(listener.oraの作成)、クライアントPC側のリモート接続設定(tnsnames.oraの作成)

  2. 2018 06.21

    【SQL】「相関サブクエリ」とは何か?、結合との使い分けなども

  3. 2018 06.21

    【SQL】関数一覧

  4. 2018 04.29

    【SQL】結合について

  5. 2021 11.07

    【SQL】「集合演算」について(UNION,EXCEPT,INTERSECT)

  6. 2018 04.30

    【システム開発】チューニングの基礎知識

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【PL/SQL】Hello Worldプログラムを作成…

【PL/SQL】「変数」や「固定値」の使い方

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー