PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
9710 | 99/12/27 17:56:25 | RE(4):PB6.5: ストアドに配列渡しがうまくいきません By h.nabe |
9709 | 99/12/27 17:49:36 | RE(3):PB6.5: ストアドに配列渡しがうまくいきません By h.nabe |
9708 | 99/12/27 17:47:50 | RE(2):PB6.5: ストアドに配列渡しがうまくいきません By h.nabe |
9706 | 99/12/27 17:39:50 | RE(1):PB6.5: ストアドに配列渡しがうまくいきません By Taka |
9703 | 99/12/27 16:41:44 | PB6.5: ストアドに配列渡しがうまくいきません By h.nabe |
カテゴリ:スクリプトの記述
日付:1999年12月27日 16:41 発信者:h.nabe
題名:PB6.5: ストアドに配列渡しがうまくいきません
以下の方法でオラクルストアドに配列渡しを試みたのですが、エラーとなってしまいます。
会議室にあるストアド関連を検索して、参考にして4日ほど考えたのですが、はまってしまいました。よろしくお願い
します。(貧乏なのでマニュアルは何もありません。)
ストアドのBODY部のエラー行は-- *****でコメントしています。
エラー内容は
ORA-06502:PL/SQL:値または数値エラーが発生しました。
ORA-06512:\"TESTDB.BODYA\", 行:12
ORA-06512:行1
【PBからの呼出スクリプトの記述】
long cnt, max
int n,x1
String out1, out2
String ary[], buf
n = 2
buf = Space(10)
// 実行
max = 10
// 必要な配列を初期化
FOR cnt = 1 TO max
ary[cnt] = buf
NEXT
ary[1] = \'3\'
ary[2] = \'2\'
SQLCA.test1( n, ary, x1, out2 )
messagebox(\"\",sqlca.sqlerrtext)
【transaction オブジェクトのローカル外部関数の記述】
subroutine test1( integer in_cnt, string in_arr[], ref integer out1, ref string out2 ) RPCFUNC
ALIAS FOR \"TESTDB.bodya.pro1\"
【-- パッケージ 仕様部】
CREATE OR REPLACE PACKAGE TESTDB.bodya
as
TYPE RJCT_CODE_TABLE IS TABLE OF TESTDB.reject_event.assy_lotid%type
INDEX BY BINARY_INTEGER;
PROCEDURE pro1
(in_rjct_cnt IN number,
in_rjct_code_arr IN RJCT_CODE_TABLE,
out1 out number,
out2 out varchar);
END;
/
【--パッケージ ボディー部】
CREATE OR REPLACE PACKAGE BODY TESTDB.bodya
AS
PROCEDURE pro1
(in_rjct_cnt IN number,
in_rjct_code_arr IN RJCT_CODE_TABLE,
out1 out number,
out2 out varchar)
AS
-- ローカル変数
BEGIN
out1 := in_rjct_cnt;
-- ***** ここでエラーとなります。
out2 := in_rjct_code_arr(1);
END pro1;
END bodya;
/
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows95
DBMS Oracle SQL*Net 8
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.