Function オブジェクトは Procedure オブジェクトと違い、select 文の列名リストの中で使用できるので簡単に結果を体験できる有用なオブジェクトです。 サンプル : MF
CREATE OR REPLACE FUNCTION MF ( PM_STRING IN NUMBER /* 引数の定義 */ ) RETURN VARCHAR2 /* 戻り値の定義 */ /**********************************************************/ /* 変数の定義 */ /**********************************************************/ AS RET_VALUE VARCHAR2(2000); WK_VALUE VARCHAR2(2000); /**********************************************************/ /* 処理開始 */ /**********************************************************/ BEGIN DBMS_OUTPUT.PUT_LINE('デバッグ:開始'); DBMS_OUTPUT.PUT_LINE('デバッグ:引数:'||PM_STRING); if PM_STRING = 0 then RET_VALUE := '男'; else RET_VALUE := '女'; end if; RETURN RET_VALUE; /**********************************************************/ /* 一番外側のブロックの例外処理 */ /**********************************************************/ EXCEPTION WHEN OTHERS THEN RET_VALUE := '例外発生:'||SQLCODE||':'||SQLERRM; RETURN RET_VALUE; END;
▼ SQL の窓 build c++ で作成できます確認用 SQL 文
select 社員コード ,氏名 ,フリガナ ,所属 ,性別 ,mf(性別) as 性別名 ,作成日 ,更新日 ,給与 ,手当 ,管理者 ,生年月日 from 社員マスタ
DBMS_OUTPUT の結果を表示する為には、SQLPlus を使用します。 ( Oracle 11g 学習環境の作成 : SQLPlus の環境作成 ) SET SERVEROUTPUT ON の設定により、select 文を実行しただけで、DBMS_OUTPUT の内容が表示されますが、Call 文を使用して、単独でテストすることが可能です。
SQL> variable str VARCHAR2(10); SQL> call mf(0) into :str; デバッグ:開始 デバッグ:引数:0 コールが完了しました。 SQL> print str STR ---------------------------------------------------------------- 男
▼ ソースコードは以下の SQL で取得可能です。select * from USER_SOURCE where NAME = 'MF' order by LINEデータ作成 mdb よりデータを作成する スクリプト(32ビット用/cscript.exe で呼び出せば 64ビット)のダウンロード26、27、29 行目を環境に合わせて変更 ※ ディレクトリオブジェクトの作成 関連する記事 PL/SQL : Function と Procedure の簡単なサンプル Oracle 11g 学習環境の作成 : SQLPlus の環境作成 Oracle SQLPlus でスキーマの作成
|
【Oracle : PL/SQLの最新記事】
- PL/SQL : 最も簡単な CSV 出力 の記述
- PL/SQL : Function と Procedure の簡単なサンプル
- Oracle : PL/SQL : 暗黙のカーソルとループブロックを使用した自動行挿入
- Oracle : PL/SQL : SELECT 〜 INTO 構文の一般的な使用方法
- Oracle : PL/SQL : カーソルを使った一般的なループ処理を行うプロシージャ
- Oracle : PL/SQL : Function のサンプルと使い方
- PL/SQL : OUT タイプのパラメータを持つストアードプロシージャの処理
- PL/SQL : プロシージャの呼び出し
- PL/SQL : Function 雛形