2008年7月22日

[pgsql-jp: 39508] Re:8.3の"operator does not exist"エラー


"EBIHARA, Yuichiro" <ebihara@xxxxx> wrote:

> > 誤解が多いのですが、シングルクォートで囲った '999' の型は "UNKNOWN" であり、
> > "TEXT" ではありません。

> マニュアルの記述は説明を簡単にするために敢えて触れていないということなのでしょうか。それにしても注記があるとうれしいですが。
> http://www.postgresql.jp/document/pg833doc/html/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS


分かりづらいところがありますが、下記の箇所が関連しています。

| 4.1.2.5. 他の型の定数
| 明示的な型キャストは、定数がどの型でなければならないかについて
| 曖昧な点がなければ(例えば定数が直接テーブル列に代入されている場合)
| 省略しても構いません。その場合自動的に型強制されます。

'foo' は、まずは、他の型の定数で、型が省略されていると解釈されるのでしょう。
そして、「型が省略されているにもかかわらず、型の指定に曖昧な点がある」場合には、
4.1.2.5 の条件に当てはまらないため、文字列と解釈されると読みとれます。

……難解な文章です。

------------------------------------------------------------
板垣貴裕 <itagaki.takahiro@xxxxx>

投稿者 xml-rpc : 2008年7月22日 16:14
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/75524
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。