1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PL/SQLの基本的な形と実行について

Posted at

はじめに

業務でPL/SQLを使う機会がありました。ネットで調べると基本的な説明や書き方はすぐに見つか流のですが、全体的な形が中々イメージできなかったため苦戦してしまいました(特にパッケージを使ったサンプル等がなかなか見つかりませんでした)。
今回は未来の自分のメモとしての役割も含め、PL/SQLの大まかな形をまとめてみることにしました

PL/SQL

以下にPL/SQLの簡単なサンプルを記載します。

program.sql

--パッケージ仕様
CREATE OR REPLACE PACKAGE PACKAGENAMES AS
    --関数定義
	FUNCTION FUNCTIONNAME(
		 argument    IN    NUMBER
		) RETURN NUMBER;
END PACKAGENAMES;
/

SHOW ERRORS


--パッケージ本体
CREATE OR REPLACE PACKAGE BODY PACKAGENAMES AS

    -- ここに関数の処理を記述する
	FUNCTION FUNCTIONNAME(
		 argument		IN	NUMBER
		) RETURN NUMBER
	IS
    -- ここで変数を定義する
	error_code number(5);
	error_message varchar2(1024);

	BEGIN
        -- ここにSQL文を記載する

    -- 正常終了
	RETURN 0;

    -- エラーが起こった場合の処理
	EXCEPTION
		WHEN OTHERS THEN
            -- 異常終了
			RETURN 1;
	END FUNCTIONNAME;

END PACKAGENAMES;
/
SHOW ERRORS


実行について

PL/SQLを作成したということはどこかで実行することになると思われます。
今回はBATで実行するための手順を記載します。

まずは上で作成したprogram.sqlを実際に呼び出すためのPL/SQLを作成します。

call.sql
set serveroutput on;
DECLARE
    ResultCD NUMBER;
BEGIN
    ResultCD := PACKAGENAMES.FUNCTIONNAME(&1);
    
    DBMS_OUTPUT.PUT_LINE('ResultCD='||ResultCD);
END;
/

exit;


次にこのcall.sqlを呼び出すためのBATを作成します。

call.bat

@echo off

rem 引数を設定
set argument=25

sqlplus ユーザー/パス@接続 @実行ファイル %argument%
PAUSE

exit

おわりに

PL/SQLの書き方やコンパイルの仕方については、少し調べたら出てくるので今回は省略しています。かなりあっさりとした内容になってしまいましたが、PL/SQLを書くときの基本形はこんな感じかなと思います。

参考サイト

PL/SQLパッケージの使用

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?