在我的一个select语句中,我有以下错误:
ERROR: Failed to find conversion function from unknown to text ********** Error ********** ERROR: Failed to find conversion function from unknown to text sql state: XX000
这很容易解决使用cast,但我不完全明白为什么会发生。我将解释我对两个简单陈述的混淆。
这一个是OK:
select 'text' union all select 'text';
这将返回错误:
with t as (select 'text') select * from t union all select 'text'
我知道我可以很容易地解决:
with t as (select 'text'::text) select * from t union all select 'text'
为什么第二个示例中的转换失败?有一些逻辑,我不明白或这将是固定的Postgresql的未来版本?
Postgresql 9.1.9
同样的行为在Postgresql 9.2.4(SQL Fiddle)