開発者ドキュメント

PostgreSQL – ERROR:演算子が存在しません:smallint =文字の可変(解決策)

今日私は奇妙なエラーに遭った、実際に私の会社は移行する予定です
PostgreSQL 8.2から最新のPostgreSQLへの既存のj2ee Webアプリケーション
8.3。しかし、私はPostgreSQL 8.3を適切にセットアップした後、Webを起動します
アプリケーション、私は次のエラー+

org.postgresql.util.PSQLException:ERROR:演算子が存在しません:smallint = character varying

それはデータ型不一致エラーのように思える、面白いそれは正常に動作しています
PostgreSQL 8.2でもPostgreSQL 8.3ですか?私は数時間のグーグル・グーグルで、
おそらく、暗黙的なキャストの変更を行う必要があります
8.3。それはPostgreSQL 8.3のようなものです。
チェックデータ型。

これにより、多くの副作用が解消されます。
valuelistにcoloumを比較させ、PostgreSQLにキャストをさせる
自動的に。
これはもはやPostgreSQL 8.3ではサポートされなくなりました(おそらく)。ここで私は提供する
上記のエラーを解決する2つのソリューション。

溶液

**  1)前に適切なデータ型にキャストするためにsetIntまたはsetLongを使用する
PostgreSQLに文を送る**

**  2):: smallintのような明示的なキャストを使う

例えば

** **

....
select **  from score where scordid =?::smallint
....

あなたが私のようなvaluelistを使用している場合は、適切なデータ型にStandardStatamentBuilderをオーバーライドするためにstatementBuilderをラップする必要があります。

....












....

あなたに働くことを願っています。

link://tag/postgresql/[postgresql]
モバイルバージョンを終了