「Oracle」ストアドファンクションを作成してみる
以下のエントリーで Oracle Database のストアドプロシージャをごにょごにょしてみたわけですが、せっかくなのでストアドファンクションも触ってみました。
・「Oracle」ストアドプロシージャを作成してみる - プログラム日記
http://a4dosanddos.hatenablog.com/entry/2015/05/08/010524
・「Oracle」ストアドプロシージャのカーソルを使ってみる - プログラム日記
http://a4dosanddos.hatenablog.com/entry/2015/05/08/012356
例によって、簡単な内容になります。
パッケージ仕様部
create or replace package ccc as function hello (name in varchar) return varchar; function addition (x in number, y in number) return number; function count_t1 return number; end ccc; /
本体
create or replace package body ccc as function hello (name in varchar) return varchar is r varchar(50); begin r := 'hello ' || name; return r; end; function addition (x in number, y in number) return number is r number; begin r := x + y; return r; end; function count_t1 return number is r number; begin select count(*) into r from t1; return r; end; end ccc; /
ストアドファンクションは SQL から実行できます。以下の感じで。
select ccc.hello('hoge') as hello from dual; select ccc.addition(1, 2) as addition from dual; select ccc.count_t1 as count_t1 from dual;
以上です。
・CREATE FUNCTION文
https://docs.oracle.com/cd/E15817_01/appdev.111/e05670/create_function.htm
[ 環境情報 ]
CentOS 5.5
Oracle Database 11g Release 2 ( 11.2.0.1.0 )