我试图更改几年前用 redshift 编写的视图,该视图有一列文本类型,其他视图依赖于它,所以一旦我尝试“创建或替换视图”,我就无法删除它“我收到此错误
“无效操作:无法更改视图列的数据类型 “员工状态”;
该列最初的类型为 ::TEXT
case when 1=1 then 'someText'::TEXT else 'otherText'::TEXT end as employee_status
但是一旦我尝试更新此视图,该列就会创建为 varchar(10) ,这会产生此冲突。 有没有办法强制将列类型创建为文本。 正在阅读文档,不确定最近的更新是否改变了
编辑: 这是视图定义的示例:
create or replace view sc.test
as select column1...,
case when 1=1 then 'someText'::TEXT else 'otherText'::TEXT end as employee_status
where... some condition
我想更改一些条件,但随后出现了employee_status列的数据类型问题,因为它是作为varchar而不是文本创建的,所以我无法更新视图。
我面临着同样的问题。但得到了解决方案,你可以做以下事情 text(cast(列名为 VARCHAR(65535))) 。 将 columnname 替换为您的字段,并将 VARCHAR(65535) 替换为旧的基表数据类型和精度。我的视图字段基表数据类型是 VARCHAR(65535)。