データベースのストアドプロシージャやファンクションを呼び出す
2020/09/18
方法
データベースに定義されたストアドプロシージャまたはファンクションは transaction オブジェクトに外部関数として宣言することでスクリプトから呼び出すことが可能です。
ユーザーオブジェクトとして transaction オブジェクトを作成し、ローカル外部関数に RPCFUC キーワードを付与してストアドプロシージャ、ファンクションを宣言します。また、結果を返さないストアドプロシージャには SUBROUTINE、結果を返すファンクションには FUNCTION キーワードを使用します。
【例】
データベース上に下記のストアドプロシージャが登録されているとします。
test_proc(emp_id number, dept_id out number)
これを呼び出すには、作成した transaction オブジェクト (“uo_trans” とします) の「ローカル外部関数の宣言」で下記のように宣言します。
[transaction オブジェクトのローカル外部関数の宣言]
// ストアドプロシージャの宣言 SUBROUTINE test_proc(double EMP_ID, ref double DEPT_ID) RPCFUNC
[呼び出し処理]
double in_empid double out_deptid uo_trans luo_trans luo_trans = CREATE uo_trans /* DB 接続設定 */ CONNECT USING luo_trans; ・ ・ ・ // ストアドプロシージャ呼び出し luo_trans.test_proc(in_empid, out_deptid)
ファンクションについては FUNCTION キーワードを使用し、宣言時に戻り値のデータ型を指定します。
[transaction オブジェクトのローカル外部関数]
// 整数型を返すストアドプロシージャの宣言 FUNCTION long test_func(double EMP_ID, ref double DEPT_ID) RPCFUNC
Tips情報
プロダクト :PowerBuilder
バージョン :2017R3