[Seasar-user:3201] Re: S2Dao からストアドプロシージャの実行

tarumi yuutarumi
2006年 2月 16日 (木) 16:33:16 JST


tarumiです。

> subversionにコミットしてみました。
上原さん、ありがとうございます。

>  PostgreSQLで試験してみたのですが、PostgreSQLだと
> 2つ以上のOUTパラメータが指定された場合、1つのレコード型
> パラメータとして処理されるようで、うまくいきませんでした。
色々と違うんですね。
各JDBCで統一されているといいんですけどね・・・

> すいませんが、Oracleで試してみてもらえないでしょうか。
申し訳ありませんが、前回書き漏らしていた部分があり、
その部分がエラーになっていました。
AbstractBasicProcedureHandlerのinitTypes()の160行目付近の
columnTypes_ = (Integer[])dataType.toArray(new Integer[dataType.size()]);
の部分で、ClassCastExceptionが発生しているようです。
中身がBigDecimalのようなので、
Integerに変換するようにしました。
もしかしてDBによって違うんですかね・・・orz

っとその状況で、以下のテストが正常にとおりました。
括弧内はパラメータとかの情報です。
・Procedure(in*1)
・Procedure(out*1)
・Procedure(in*3,out*3)
・Procedure(in*3,inout*1)
・Package.Procedure(in*5,out*3)
・Function(return*1,in*3,out*1)
Map、Objectのどちらも流しました。
OracleはこれでOkな感じがしますね。
他のDBがちょっと気になりますが・・・

> 2つ以上のOUTパラメータが必要な場合は、帰り値がMapでなければなりません。
理想系です^^;

> #ドキュメントとかテストとか書こうと思ったけどもうだめだ。
おつかれさまです。頑張ってください^^;

以上、よろしくお願い致します。




Seasar-user メーリングリストの案内