データベース千夜一夜第32回

ユーザー定義関数 長谷川裕行
有限会社 手國堂

ユーザー定義関数とは?

ユーザー定義関数は、文字通りユーザー(プログラマーやデータベース管理者)が定義した独自の関数です。考え方としては、ExcelやAccessのVBAで作るユーザー定義関数(プロシージャ)と似ていますが、データベース特有の機能を持っています。


- 2種類のユーザー定義関数 -

ユーザー定義関数はストアドプロシージャとは別物ですが、使用方法は似ています。データベースを変更するような処理はストアドプロシージャに任せ、ユーザー定義関数はローカルな(データベース固有の)処理の定型化を担当することになります。

返す値と処理内容によって、ユーザー定義関数はスカラ値関数とテーブル値関数に分かれます。

・スカラ値関数
数量(scalar:スカラー)を返す一般的な関数です。

・テーブル値関数
SELECT命令などでテーブルを処理した結果を返す関数です。


- さらに2種類のテーブル値関数 -

データベースでは処理結果としてテーブルを返せるところが、Excelのユーザー定義関数と異なるところです。さらにテーブル値関数は、インラインテーブル値関数と複数ステートメントのテーブル値関数とに分かれます。

・インラインテーブル値関数
1行で処理できるSELECT文が戻り値となります。

・複数ステートメントのテーブル値関数
テーブルに対する処理を複数記述し、最後にテーブルを返します。

「ステートメント」は1つの完結した構文を意味し、SQL Serverのオンラインヘルプなどでよく使われています。


- ユーザー定義関数の基本書式 -

ユーザー定義関数は、このように都合3種類に分かれていますが、内部処理や値の返し方が異なるだけであって、基本的な書式は変わりません。

ユーザー定義関数を作成するには、Create Function命令を使います。

Create Function <関数名>
As
    :

では、3種類のユーザー定義関数について、例を示しながら作り方と使い方を紹介しておきましょう。



トップページ
ユーザー定義関数とは?
2種類のユーザー定義関数
さらに2種類のテーブル値関数
ユーザー定義関数の基本書式
スカラ値関数
インラインテーブル値関数
複数ステートメントのテーブル値関数
あとがき
Copyright © MESCIUS inc. All rights reserved.