[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 メーリングリストの案内