在我的选择语句之一中,出现以下错误:
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)上的行为相同
::text
没有为我工作。此解决方案确实做到了,将“ text”放在文本文字之前:stackoverflow.com/a/25193282/349169