Oracle/PLSQL

プロシージャの実行

引数には、INパラメータと、IN OUTパラメータの2つがある。
IN はそのまま値を入力すれば良いが、IN OUT は出力結果を格納するパラメータな為、変数の宣言が必要。

特定の引数(パラメータ名)に値を指定していく場合は、パラメータ名 => '値' の形式で指定する

var INOUTパラメータ VARCHAR2(60);
BEGIN
    :INOUTパラメータ := '名前';
    パッケージ名.プロシージャ名(
        パラメータ => :INOUTパラメータ,
        パラメータ => '値',
        パラメータ => '値',
        パラメータ => '値'
    );
END;
/

print :INOUTパラメータ;

先頭から順番にパラメータを指定する場合はパラメータ名を省略できる。3つ指定すると先頭から3つの引数を順番に入れたことになる

exec パッケージ名.プロシージャ名('値','値','値');


 

ファイル出力

DBMS_XXXXで実行した結果をファイルに出力する場合に使用する。勝手に改行が入る結果などはファイルに出力することで1行で表示されるので便利。

BEGIN
DBMS_ADVISOR.CREATE_FILE(
    パッケージ名.プロシージャ名(),  -- ファイル出力したいプロシージャ
    'DATA_PUMP_DIR',                -- 出力先のディレクトリをディレクトリオブジェクトで指定
    'ファイル名');
END;
/


 

サンプル

繰り返し処理

CREATE OR REPLACE PROCEDURE test_proc(base IN number, cnt IN number)
AS
BEGIN
    FOR i IN 1..cnt LOOP
       DBMS_OUTPUT.PUT_LINE(base + i);
    END LOOP;
END;
/
実行
exec test_proc(1,1000);

トップ   編集 凍結解除 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-08-30 (日) 00:15:57 (607d)