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 (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.