[seasar-s2dao-dev:316] BLOB型を引数にもつストアドが動かない

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2007年 7月 11日 (水) 23:45:36 JST


中村(taedium)です。

Oracle10.2でProcedureアノテーションを使った場合に起きます。
S2Daoのバージョンは1.0.44です。

INパラメータとOUTパラメータを持ち両方がBLOB型である
ストアドで試しています。

原因は、AbstractBasicProcedureHandler#initTypes()の処理で、
BLOB型のパラメータに対してDBのメタデータがTypes.OTHERを
返しているからのようです。

# 正確に言うと、後続の処理でTypes.OTHERがINパラメータや
# OUTパラメータの型としてCallableStatementに設定されて
# しまうのが問題。

対策として、JDBCのSQL型の取得にメタデータを使わない
というのはどうでしょう。

@Procedureが指定されたメソッドの引数の型から
S2JDBCのValueTypeを求めて
CallableStatementのバインドや値の取得をValueType
に任せてしまうといいんじゃないかと思います。

-- 
Toshihiro Nakamura



seasar-s2dao-dev メーリングリストの案内