ページの先頭行へ戻る
Symfoware Server V10.0.0 アプリケーション開発ガイド(共通編)

11.2.1 ファンクションルーチンとは

ファンクションルーチンとは、利用者が作成できる関数です。ファンクションルーチンは、プロシジャルーチンと同様にサーバに登録します。ファンクションルーチンの呼出しはSQL文の選択リストや値指定などに指定して実行します。

ファンクションルーチンを利用することで、利用者はSymfoware/RDBが提供する関数以外に自由に関数を作成し、数値関数、データ列値関数、日時値関数と同様にSQL文中で実行することができます。

ファンクションルーチンを使用したSQL文の記述例

スキーマ名およびルーチン名は、それぞれ、“管理SCM”、“高額購入伝票データ整形”であるとします。

SELECT 管理SCM. 高額購入伝票データ整形(番号, 製品名, 金額, 発注数)
       FROM 管理SCM.伝票テーブル
       WHERE 発注数 > 0 AND 金額 >= :H_YEN ;

Symfoware/RDBでは、ファンクションルーチンは外部ルーチンとして提供しています。

外部ルーチンとは、利用者がC言語などで作成したプログラムを動的リンクライブラリとしてサーバに登録し、SQL文から呼び出すものです。外部ルーチンの利点は、文字列型データの整形など、SQLの関数では限界がある複雑な処理を、C言語などを使用することで容易に行うことができる点です。

Symfoware/RDBでは、外部ルーチンを作成する言語として、C言語を使用できます。

ファンクションルーチンの処理を行うプログラムは、Symfoware/RDBプロセス外のファンクションルーチン専用のプロセスで動作し、このプロセスはアプリケーションごとに作成されます。Symfoware/RDBプロセス内のSQL文の処理中に、レコード単位に引数が通知され、ファンクションルーチンの結果値を随時Symfoware/RDBに返却します。