在我的一个选择语句中,我遇到了以下错误:
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
,但我不完全理解它为什么会发生。我将用两个简单的陈述来说明我的困惑。
这个没问题:
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)