Redshift 转换为文本类型

问题描述 投票:0回答:1

我试图更改几年前用 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而不是文本创建的,所以我无法更新视图。

编辑2: 这是视图的列类型,类型为文本: enter image description here

amazon-web-services amazon-redshift
1个回答
0
投票

我面临着同样的问题。但得到了解决方案,你可以做以下事情 text(cast(列名为 VARCHAR(65535))) 。 将 columnname 替换为您的字段,并将 VARCHAR(65535) 替换为旧的基表数据类型和精度。我的视图字段基表数据类型是 VARCHAR(65535)。

© www.soinside.com 2019 - 2024. All rights reserved.