Oracle のストアド プロシージャを介して値を渡すテキスト ボックスを含むページがあります。プロシージャが変更されたため、現在は 2 つのパラメーターがあり、1 つは入力値用で、もう 1 つは整数値を返します。
オラクルの手順は次のとおりです。
procedure UnoxDataFix(p_shpmt_nbr in pkms.asn_hdr.shpmt_nbr%type, retval out integer) is
begin
retval:=0;
for r in (
-- simple select statement
)
loop
if(r.stat_code = 10 and r.whse_xfer_flag = 'Y')
then
update pkms.asn_dtl ad
-- simple set statement
update pkms.asn_hdr ah
-- simple set statement
where ah.shpmt_nbr = p_shpmt_nbr
RETURNING 1 into retval;
commit;
end if;
end loop;
end;
そして、ここに私が持っていたコアC#コードがあります:
this.oraServer.ExecuteNonQuery(this.connectionString, CommandType.Text, "begin INTEGRATION.UnoxDataFix('" + input + "'); end;");
接続文字列は機能します。エラーを発生させているのは実際の手順です。「入力」値は、プロシージャに送信される実際の値です。しかし、「retval」をサイトに戻す方法がわかりません。できる限りグーグルを試しましたが、役に立ちません。私は少し遅いので、すべてのコメントは大歓迎です。:)