[Seasar-user:16309] Re: [S2JDBC]原因不明なSQLRuntimeExceptionが発生する

山田 祐己 [E-MAIL ADDRESS DELETED]
2008年 11月 17日 (月) 13:38:16 JST


中村さん

お世話になります。山田です。
>
> where (T1_.EONO=? and T3_.TBL_KEY='CMN_REC')
>
> でバインドしている値が大きすぎるのではないでしょうか?
調査の結果、確かにバインドしている値が、テーブルの桁数よりも
1桁大きい状態でした。
その為、条件で桁数の制約をかければ解決しました。
有難うございます。

追伸
> によると、SQLSTATE=22001の意味は、
>
> 「文字データの右側が切り捨てられました。
> 例えば、更新または挿入の値が、列には長すぎるストリングである、
> またはホスト変数が小さすぎるため、日時の値をそのホスト変数に
> 割り当てられない、などが考えられます。」

これって、更新だけではなく、照会でも適用されるのですね。
単に、検索結果を0件で戻してくれれば良いのにと思うのは私位でしょうか。

以上

山田 祐己(Yuki Yamada)
E-Mail [E-MAIL ADDRESS DELETED]


Toshihiro Nakamura さんは書きました:
> 中村(taedium)です。
>
>> S2JDBCでSQLの自動生成で実行したSQLで「SQLRuntimeException」が発生する
>> と言う事象が出ております。
>>
>> スタックトレースを添付します。
>> 当初、生成されたSQLの記述の問題と思い、他のツール(EclipseのDBViewer)で
>> 生成されたクエリーを実行したところ、0件検出でしたがエラーには
>> なりませんでした。
>> 0件検出でこのような事象が出たのは初めてでしたので、
>> 原因が特定できずに困っております。
>
> DB2のドキュメント
>
> http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.messages.doc/doc/rdb2stt.html
>
> によると、SQLSTATE=22001の意味は、
>
> 「文字データの右側が切り捨てられました。
> 例えば、更新または挿入の値が、列には長すぎるストリングである、
> またはホスト変数が小さすぎるため、日時の値をそのホスト変数に
> 割り当てられない、などが考えられます。」
>
> とあります。
>
> where (T1_.EONO=? and T3_.TBL_KEY='CMN_REC')
>
> でバインドしている値が大きすぎるのではないでしょうか?
>




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