[pgsql-jp: 32506] Re: union を使ったselect 結果のinsertができない 7.4.1,2

Mashiki mashiki @ yanah.com
2004年 3月 19日 (金) 16:38:49 JST


 Mashikiです。

和田さん、橋本さん、レスありがとうございます。

>> ERROR:  column "cb" is of type integer but expression is of type text
>> HINT:  You will need to rewrite or cast the expression.
>> 
>> というエラーが出ます。なにが悪いのでしょうか?
>
>NULL同士のunionだとtext型になるようですね。

これは仕様なのでしょうか?バグっぽい気がしますが。

>解決方法はHINTに書いてあるとおりで。
>
>wada=# create table uniontest (i int);
>CREATE TABLE
>wada=# insert into uniontest select null union select null;
>ERROR:  column "i" is of type integer but expression is of type text
>HINT:  You will need to rewrite or cast the expression.
>wada=# insert into uniontest select null::int union select null;
>INSERT 25344 1
>wada=#

あはは、もともと2000バイトくらいあったSQLを削って、簡単な再現サン
プルを書いたつもりでしたが、50バイトで再現できるのですね。びっくり。

解決のサンプルもいただき、ありがとうございます。
INSERT文を2つに分けるしかないと、思っていたので助かりました。



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