忍者ブログ
IT関係の小作人労働の日々の日記です。 最近データベースが好きです。 インフラ構築、DB構築、アプリケーション開発・・・何でも屋です。 何でもできそうで、何にもできない。

【データベース:Oracle復習】PL/SQL Oracle Live SQLで「Hello World」を出力する


Oracle復習シリーズ、今回はプログラミングの第一歩「Hello World」です。環境構築不要の Oracle Live SQL を使って、画面に出力する基本を確認しましょう。

1. サンプル:標準出力の基本

【 コード 】 PL/SQLで文字列を出力するには、`DBMS_OUTPUT.PUT_LINE` を使用します。今回は宣言部(DECLARE)を使わない、最もシンプルな無名ブロックで実行します。

BEGIN
   DBMS_OUTPUT.PUT_LINE('hello world') ;
END ;
/

2. 実行結果:出力タブの確認

hello world

Oracle Live SQLでは、実行後に画面下部の「DBMS output」タブをクリックすることで、上記の結果を確認できます。

3. 解説:DBMS_OUTPUTパッケージ

PL/SQLには、デバッグや結果確認のために標準で用意されているパッケージがあります。それが `DBMS_OUTPUT` です。

[ 構成要素の整理 ]
DBMS_OUTPUT:Oracleが標準提供するパッケージ名。
PUT_LINE:中身を出力して改行するプロシージャ(手続き)。
' (シングルクォート):文字列を囲む際に使用。ダブルクォートではない点に注意。

1. 理解のコツ: `DBMS_OUTPUT.PUT_LINE` は、Javaの `System.out.println` や Pythonの `print` に相当します。開発中の変数の値を確認する際など、もっとも多用するツールの一つです。
2. Live SQLの視点: 通常のSQL*Plusなどでは `SET SERVEROUTPUT ON` というコマンドが必要ですが、Live SQLは自動で出力をキャッチしてくれるので、学習には最適の環境ですね。


4. まとめ

「hello world」が表示された瞬間、データベースとの対話が成立したことになります。これが全ての複雑な処理の出発点。次はこの出力機能を使って、計算結果やデータの中身を表示させていきましょう!


PR

【データベース:Oracle復習】PL/SQLの基本ループ!LOOP ~ END LOOPを攻略する


Oracle復習シリーズ、今回は「繰り返し処理」の基本です。PL/SQLで最もシンプルなループ構造である `LOOP` ~ `END LOOP` の使い方を確認しましょう。

1. サンプル:条件判定を伴うループ

【 コード 】 変数 `var1` が 3 になったらループを抜け、それ以外の場合はその値を出力するプログラムです。終了条件を明示的に記述するのがポイントです。

DECLARE
  var1 NUMBER := 1 ;
BEGIN
  Loop

    -- var1 が 3 ならループを抜ける
    -- それ以外の場合は、var1の値を出力
    IF var1 = 3 THEN
      EXIT ;
    ELSE
      DBMS_OUTPUT.PUT_LINE(var1);
    END IF ;

    var1 := var1 + 1 ;
  END Loop ;
END ;
/

2. 実行結果:数値の出力

1
2

3に到達した時点で `EXIT` が呼ばれるため、出力されるのは「1」と「2」のみとなります。

3. 解説:ループ制御の重要性

この基本的なループ構造では、終了条件(EXIT)を書き忘れると「無限ループ」になってしまうため、注意が必要です。

[ 処理の流れの整理 ]
DECLARE:変数の宣言。今回は `var1` を 1 で初期化しています。
EXIT:ループを強制終了する命令。IF文と組み合わせて使います。
DBMS_OUTPUT.PUT_LINE:コンソールに結果を表示するための標準的な手段です。
var1 := var1 + 1:カウントアップ。これを忘れると無限ループの元です。

1. 理解のコツ: `LOOP` は「とにかく回せ」という命令。出口を `IF ... THEN EXIT` で作るのが基本の形です。シンプルですが、一番自由度が高いループでもあります。
2. 復習の視点: 今回のように `IF` 文で抜ける方法のほかに、`EXIT WHEN var1 = 3;` という、より短く書ける構文もあります。併せて覚えておくと便利ですね。


4. まとめ

「条件を満たすまで繰り返す」。これがプログラムに知能を与える第一歩です。今回の LOOP ~ END LOOP をマスターすれば、大量のデータを一件ずつ処理するカーソル処理などの応用も見えてきますね。少しずつ、確実に復習を進めましょう!



【データベース:Oracle復習】PL/SQLの最小構成!「何もしない」を攻略する


久しぶりにOracleを復習するブログ。今回はPL/SQLの基本中の基本、あえて「何もしない」プロシージャを作成して、動作を確認してみましょう。

1. サンプル:最小のプロシージャ作成

【 コード 】 実行しても何も処理を行わないプロシージャ `sample0` を作成し、実行します。PL/SQLでは、BEGINとENDの間に最低1つの文が必要なため、`NULL;` を記述します。

CREATE OR REPLACE PROCEDURE sample0
IS
BEGIN
  NULL;
END ;
/

execute sample0

2. 実行結果:処理の受理

Procedure created.

Statement processed.

上記のように表示されます。何も出力はされませんが、エラーなく「動いている」ことがわかります。

3. 解説:なぜ「NULL;」が必要なのか

PL/SQLのブロック構造において、処理部(BEGIN〜END)を空にすることは文法エラーとなります。そのため、何もしないことを明示的に宣言する必要があります。

[ ポイントの整理 ]
CREATE OR REPLACE:既存のものがあれば上書きして作成する。
NULL;:何もしない実行文。文法を満たすために使用される。
/ (スラッシュ):SQL*Plusなどのツールで、ブロックの終端を伝えて実行する記号。

1. 理解のコツ: プログラムの枠組みだけを先に作りたい時や、エラーをあえてスルーしたい時の「プレースホルダー」として `NULL;` を使うと覚えておくと便利です。
2. 動作確認の視点: 「Procedure created」はコンパイル成功を、「Statement processed」は実行成功を意味します。これが表示されれば、あなたのOracle環境のPL/SQLエンジンは健康そのものです。


4. まとめ

「何もしない」ことから始まるPL/SQLの道。これが全てのプログラムの最小単位です。ここから変数や制御構文を付け足していくことで、複雑な業務ロジックを組み上げていくことになります。まずはこのシンプルすぎる1歩を大切にしましょう!



        
  • 1
  • 2