PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
21037 | 04/04/05 19:54:31 | RE(2):ストアドプロシージャの宣言について By htoydoa |
21026 | 04/04/02 14:29:51 | RE(1):ストアドプロシージャの宣言について By Taka |
21023 | 04/04/02 12:09:26 | ストアドプロシージャの宣言について By htoydoa |
カテゴリ:PowerBuilderの開発環境
日付:2004年04月02日 12:09 発信者:htoydoa
題名:ストアドプロシージャの宣言について
いつもお世話になっております。
今日は、ストアドプロシージャの宣言でうまくいかず、困っております。
配列の引数を伴うストアドプロシージャを定義する際、RPCFUNCを用いて、
トランザクションオブジェクトのローカル外部関数で定義するということは、
こちらの掲示板で参考にさせていただきました。
ただ、トランザクションオブジェクト自体は保存できるのですが、呼び出す側の
スクリプトがうまく保存できません。試しに引数なしの普通のストアドプロシージャも、
外部関数で定義すると、呼び出しスクリプト側は保存できませんでした。
何が原因かもわかりません。どうかご教授のほど、宜しくお願いいたします。
以下、配列を伴うプロシージャ使用時のソースです。
――――――――――――――――――――――――――
■トランザクションオブジェクトへのローカル外部関数定義
subroutine PR_TEST(ref long in_num[],ref string out_st[]) RPCFUNC ALIAS FOR \"PK_TEST.PR_TEST\"
■呼び出しスクリプト側
long ll_test[]
string ls_test[]
ls_test[1] = space(20)
ls_test[2] = space(20)
setnull(ll_test[1])
setnull(ll_test[2])
sqlca.PR_TEST(ll_test[],ls_test[])
■パッケージとプロシージャ定義
create or replace package PK_TEST as
type ty_num is table of number(6)index by binary_integer;
type ty_var2 is table of varchar2(20)index by binary_integer;
procedure PR_TEST(a_1 in out ty_num, a_2 in out ty_var2);
end PK_TEST;
/
create or replace package body PK_TEST is
procedure PR_TEST (a_1 in out ty_num, a_2 in out ty_var2)
is
begin
a_1(1) := 9999 ;
a_1(2) := 5555 ;
a_2(1) := \'TEST1\' ;
a_2(2) := \'TEST2\' ;
end PR_TEST;
end PK_TEST;
/
show errors;
■スクリプト保存時のエラーメッセージ
エラー C0051:関数pr_testは未定義です。
■環境
PowerBuilder Version:9.0.1
Client側:OS-Windows2000 DBMS-OracleSQL*Net
Server側:OS-Linux DBMS-Oracle9.2.0
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows 2000
DBMS Oracle SQL*Net 8
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.