Symfoware Server アプリケーション開発ガイド(埋込みSQL編) - FUJITSU - |
目次 索引 |
第4章 ルーチンを利用するアプリケーションの作成 | > 4.2 ファンクションルーチンを利用する場合 |
ファンクションルーチンとは、利用者が作成できる関数です。ファンクションルーチンは、プロシジャルーチンと同様にサーバに登録します。ファンクションルーチンの呼出しは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に返却します。
目次 索引 |