Symfoware Server アプリケーション開発ガイド(埋込みSQL編) - FUJITSU - |
目次 索引 |
第4章 ルーチンを利用するアプリケーションの作成 | > 4.2 ファンクションルーチンを利用する場合 |
関数として定義したファンクションルーチンを実行するには、SQL文の選択リストや値指定などに指定して実行します。ファンクションルーチンを呼び出すアプリケーションのコンパイル・リンクでは、sqlcc、sqlfcc、sqlpcobコマンドに、-W2000オプションを指定してください。以下に、SQL文の記述例を示します。
例
スキーマ名およびルーチン名は、それぞれ、“SCM1”、“USERFUNC001”であるとします。
SELECT SCM1.USERFUNC001(NAME, CODE, AGE) FROM SCM1.CUSTOMER WHERE AGE BETWEEN :AGE1 AND :AGE2 ;
ファンクションルーチンは、Symfoware/RDBから新たに起動されるプロセスで実行されます。ファンクションルーチンが動作するプロセスの実効ユーザIDは、RDBシステム内で1つを指定します。実効ユーザIDの指定は、システム用の動作環境ファイルの実行パラメタEXTERNAL_PROCESS_USERで行います。
システム用の動作環境ファイルの実行パラメタについては“セットアップガイド”を参照してください。
ファンクションルーチンを実行するプロセスが何らかの原因で異常終了した場合、以下のエラーメッセージが出力されます。
コンソールおよびRDBREPORTで指定したメッセージログファイルに、以下のエラーメッセージが出力されます。
Tue Apr 17 17:47:07 2007 rdb: INFO: qdg13783i:ファンクショルーチンを実行したプロセスのコアファイルを採取しました コアファイル名は /usr/local/rdb1/rdbcore/core_fnc_9356.070417.174709です (システム名=rdb1) Tue Apr 17 17:47:08 2007 rdb: ERROR: qdg13781u:ファンクションルーチンを実行するプロセスが異常終了しました 原因=signal number : 11 (システム名=rdb1) Tue Apr 17 17:47:09 2007 rdb: ERROR: qdg13782u:ファンクションルーチンのライブラリ内で異常が発生しました (システム名=rdb1) (注) |
注) qdg13782uのメッセージが出力された場合は、ファンクションルーチンのライブラリ内で、何らかの原因で異常が発生したことを示します。メッセージに示された原因の情報をもとに、異常終了した原因を調査してください。
イベントログおよびRDBREPORTで指定したメッセージログファイルに、以下のエラーメッセージが出力されます。
qdg13783i:ファンクショルーチンを実行したプロセスのコアファイルを採取しました コアファイル名はcore_fnc_1496.20070417.205903です (システム名=RDB1) |
qdg13781u:ファンクションルーチンを実行するプロセスが異常終了しました 原因=exception code : 0xc0000005 (システム名=RDB1) |
qdg13782u:ファンクションルーチンのライブラリ内で異常が発生しました (システム名=RDB1) (注) |
注) qdg13782uのメッセージが出力された場合は、ファンクションルーチンのライブラリ内で、何らかの原因で異常が発生したことを示します。メッセージに示された原因の情報をもとに、異常終了した原因を調査してください。
目次 索引 |