[pgsql-jp: 39507] Re: 8.3の"operator does not exist"エラー
EBIHARA, Yuichiro
ebihara @ iplocks.co.jp
2008年 7月 22日 (火) 11:54:57 JST
海老原です。
2008/07/18 19:39 koyama <mlus @ hintmark.com>:
>> 誤解が多いのですが、シングルクォートで囲った '999' の型は "UNKNOWN" であり、
>> "TEXT" ではありません。UNKNOWN は、他の型への変換が必要になった時点で初めて
>> その型に変換されます。そのため、value = <integer型> と書くのと同じです。
>> (ただ、型推論ができなかった場合のデフォルトの変換は、TEXT です。)
>
> 誤解していました、知りませんでした。
> UNKNOWN という事は、
> setObject(int n, Object o) しても安心ですね。
>
> 勉強になりました。(ちょっと、無精が出来る ^^ )
これはちょっと誤解だと思います。
UNKNOWNは文字列リテラルが型指定なしでサーバに渡された場合の話ではないでしょうか。
PostgreSQLのJDBCドライバは、setObjectで渡されたObjectの型を判別して、setStringやsetIntなど適当なメソッドをコールし直しますので、無精ができるのは正しいのですが。
--
海老原 雄一郎 / EBIHARA, Yuichiro
Email: ebihara @ iplocks.co.jp
pgsql-jp メーリングリストの案内