[pgsql-jp: 29582] Re: バージョン 7.1.3 での SQL エラーについて

T.Suzuki t_suzuki @ kenwood-eng.co.jp
2003年 4月 4日 (金) 18:15:15 JST


鈴木と申します。

> バージョン7.1.3の環境において
>
> select * from aaa_tbl where text_field1 <>1;
>
> を実行すると
> ERROR:  Unable to identify an operator '<>' for types
> 'text' and 'int4'
>         You will have to retype this query using an
> explicit cast
>
> というエラーになります。「これは数値型と文字列型との明示
> 的な型変換が必要だ」と思うのですが、
> バージョン7.3.2の環境だとエラーになりません。
> いつのバージョンから自動変換機能が可能になったのでしょう
> か?

7.2 で実行した所、エラーになりました。

気になったので、オペレータ を見てみました。

7.3のオペレータに、text と int4 の"<>"は追加されてはいなかったので、
暗黙の型変換が行われているのでは無いでしょうか?

#ちょっと自信がありませんが
#PostgreSQL 7.3.2 Documentation  Capter 7 Type Conversion を参照

> また設定ファイルなどで設定できるのでしょうか?
方法的には、ユーザ定義のオペレータを作成すれば可能です。

が、この場合、Mizusakoさんがおっしゃるように、明示的に型変換する事を
お勧めします。
 -----------------------------------------
      鈴木 徹 (SUZUKI Toru)
      KENWOOD ENGINEERING CORPORATION
      E-mail:t_suzuki @ kenwood-eng.co.jp
 -----------------------------------------




pgsql-jp メーリングリストの案内