トランの毎日迷宮

Tech系ブログを目指すもの

【Oracle】Functionを作ろう!【自作関数】

 

こんばんにちはございます。 トランです。


今回はOracleのFunction

を作っていこうと思います。

Oracle使ったことある人ならばご存じかもしれませんがNVLやUPPER等

最初から用意されている関数がありますよね。こいつに自分で作った関数を加えることができます。

ObjectBrowser12のお試し版を使ってDBへ接続→FUNCTIONで右クリック→新規作成

でソースは下記↓↓↓↓

 

CREATE OR REPLACE FUNCTION FNC_TESTTEST(vPARA1 IN VARCHAR2,vPARA2 IN VARCHAR)
RETURN VARCHAR2
IS
wRSLT_VALUE VARCHAR2(20) := '';
wCHAR_VALUE CHAR(4) := 'DEF1';
wVARCHAR2_VALUE VARCHAR2(4) := 'DEF2';
BEGIN
IF vPARA1='5' THEN
wCHAR_VALUE :='CH1';
END IF;

IF vPARA2='9' THEN
wVARCHAR2_VALUE :='CH2';
END IF;

wRSLT_VALUE := wCHAR_VALUE||' '||wVARCHAR2_VALUE;

RETURN wRSLT_VALUE;

END;
/

作成をクリックで、

世界で一番使いどころのないFunctionができたよ!!

呼び出し方はこんな感じ

select FNC_TESTTEST('5','9') from dual;

出力結果↓↓↓↓

FNC_TESTTEST('5','9')
CH1 CH2

第1引数に5の文字、第2引数に9の文字を入れてあげると出力が変わるよ!!!

それだけ!

もっとましなのつくろうと思ったんですが、select into 使ってなんかテーブルからデータ取得するためには取得するデータを持ったテーブルが必要なんですよね。

今日は洗濯があるからね。

参考サイトはこちら↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

ORACLE/FUNCTION編 - オラクルちょこっとリファレンス

 

そんなわけで、おしまい。