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

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