PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
21433 04/07/23 19:50:37 PB7.0: プロシージャに配列を渡す方法? By こうちゃん

カテゴリ:スクリプトの記述
日付:2004年07月23日 19:50 発信者:こうちゃん
題名:PB7.0: プロシージャに配列を渡す方法?

皆さんこんにちは。
BPからOracleのプロシージャに配列を渡す方法について教えてほしいのです。

過去のログをいろいろと探してみると、RPCFUNCを利用することにより実装可能
とありました。

早速、同じような処理を組み込んだのですが、Oracleのエラーが発生してしまいます。
エラーは下記の通りです。
「ORA-24334:この位置に対する記述子はありません。」

実装している内容は下記の通りです。

パッケージで「PL/SQL表の型」を作成
CREATE OR REPLACE PACKAGE TEST_PKG AS
  TYPE TYPE_ARRAY IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
END;

プロシージャを作成
CREATE OR REPLACE procedure pr_test
( PARM_1 IN TEST_PKG.TYPE_ARRAY 
, o_kekka out integer) 

IS
  cnt INTEGER;
BEGIN
  o_kekka := 0;
  FOR cnt IN 1 .. PARM_1.COUNT LOOP
    o_kekka := o_kekka + PARM_1(cnt);
  END LOOP;
END;


トランザクションクラスを継承したユーザオブジェクトのローカル外部関数
subroutine TEST_PROC( integer parm_1[], integer outval ) RPCFUNC


画面のボタンのイベント
integer ary[]
integer li_val
ary[1] = 10
ary[2] = 20
ary[3] = 30
SQLCA.TEST_PROC( ary, li_val )

として、実行するとSQLCA.sqlerrtextに上記で記述したエラーメッセージが
格納されています。

どこかおかしなところが有りましたら教えてください。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows 2000
DBMS Oracle SQL*Net 8
Browser InternetExplorer5.X

Server SoftWare

OS Windows 2000
DBMS Oracle 8.0
WebServer (記載なし)

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