首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将character varying []转换为character varying

将character varying []转换为character varying
EN

Stack Overflow用户
提问于 2019-08-06 19:47:21
回答 1查看 454关注 0票数 0

我希望通过同一个SQL文件运行多个输入文件。有时我在其上运行正则表达式的列是一个字符varying[],而有时不同文件中的同一列是一个没有[]的字符。我希望确保输入文件是一个带或不带[]的字符,这并不重要。

以下内容适用于单个文件:

代码语言:javascript
运行
复制
ALTER TABLE table ALTER COLUMN column TYPE character varying;
UPDATE table SET column = left(column , length(column )-1);
UPDATE table SET column = right(column , length(column )-1);

当将类型从character varying[]更改为character varying时,它保留了我必须使用update语句删除的方括号。我无法创建一个同时适用于两个输入文件的解决方案。

我认为这个思路可能是答案,但是PL SQL对我来说很困难:http://www.postgresqltutorial.com/plpgsql-if-else-statements/。目前正在做这件事,但不确定我是否在正确的方向上:

代码语言:javascript
运行
复制
DO $$ 
DECLARE
   ??? a integer := 10;
   ??? b integer := 10;
BEGIN 
  IF column === character varying[] THEN 
     ALTER TABLE table ALTER COLUMN column TYPE character varying;
     UPDATE table SET column = left(column , length(column )-1);
     UPDATE table SET column = right(column , length(column )-1);
  ELSE
     RAISE NOTICE 'column is a character varying';
  END IF;
END $$;
EN

回答 1

Stack Overflow用户

发布于 2019-08-06 19:55:55

通过执行以下操作修复该问题:

代码语言:javascript
运行
复制
ALTER TABLE elektriciteitskabel ALTER COLUMN link_href TYPE character varying;
UPDATE elektriciteitskabel SET link_href = replace(link_href, '{', '');
UPDATE elektriciteitskabel SET link_href = replace(link_href, '}', '');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57375384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档