文档章节

浅谈Greenplum的Boolean类型与Text类型之间的转换

 时光承诺
发布于 2017/07/10 15:07
字数 477
阅读 26
收藏 0

 

原文地址

在Greenplum或者Deepgreen中,如果我们想直接把Boolean类型转化为Text,那么可能会让你失望,因为他们不支持这种直接转化,但是可以通过UDF的方式实现,下面来简单看一下这个过程。

 

首先,当我们运行下面的SQL来转换Boolean为Text类型时,会得到一个大写测错误:-D

DECLARE qgis_4 BINARY CURSOR FOR SELECT st_asbinary("location",'NDR'),ctid,"start_datetime"::text,"end_datetime"::text,"temperature"::text,"pressure"::text,boolout("rainfall")::text,"humidity"::text,"illuminance"::text,"uva"::text,"ubv"::text FROM "event"."weather_soratena" WHERE "location" && st_makeenvelope(136.92967584819169247,37.11712946054284856,137.3367917387353998,37.52424535108657011,4326) AND st_intersects(st_curvetoline("location"),st_makeenvelope(136.92967584819169247,37.11712946054284856,137.3367917387353998,37.52424535108657011,4326))

ERROR: cannot cast type cstring to text 
LINE 1: ...ture"::text,"pressure"::text,boolout("rainfall")::text,"humi...

 

错误的原因是GP不支持将cstring转换成其他的数据类型(如下代码显示)

gpadmin=# select boolout('1')::text;
ERROR: cannot cast type cstring to text
LINE 1: select boolout('1')::text;
                             ^
gpadmin=# select '1'::bool::text;
ERROR: cannot cast type boolean to text
LINE 1: select '1'::bool::text;
                          ^

 

这时候我们该怎么办?放弃吗?当然不,我们可以通过UDF(User Defined Function)的方式来变通实现。这里我们定义一个BooleanToText函数,用来实现转换功能:

postgres=# CREATE FUNCTION BooleanToText(boolean) RETURNS text STRICT IMMUTABLE LANGUAGE PLPGSQL AS $$ BEGIN IF $1 IS TRUE THEN RETURN 'true'; ELSE RETURN 'false'; END IF; END; $$;
CREATE FUNCTION
postgres=# CREATE CAST (Boolean AS Text) WITH FUNCTION BooleanToText(boolean);
CREATE CAST
postgres=# select '1'::bool::text;
 text
------
 true
(1 row)

 

有朋友说,你开头的错误还是不能解决啊!姑且别急,接着看 ↓

针对cstring无法转换成text的问题,我们可以使用boolin函数先将cstring转换为boolean类型,然后在进行text的转换:

原文地址

本文转载自:http://click.aliyun.com/m/25581/

粉丝 0
博文 225
码字总数 0
作品 0
私信 提问
浅谈JS数据类型转换

JavaScript中的数据类型是比较灵活的,所以很多时候会涉及到数据类型转换。这篇文章就简单讲一下JS中各个数据类型之间的转换。 Boolean类型 String类型 Number类型 1、转到Boolean类型 调用 ...

Nicksonlvqq
2017/11/02
0
0
Greenplum小把戏 - 官方布尔类型转换为文本类型(bool to text)的进步

一直追随使用Greenplum数据库的朋友们,在之前低版本的Greenplum中如果我们想把布尔类型直接用显示转换的方式转为文本类型(例如:select '1'::bool::text;),那么你可能会碰壁,只能自己创...

闻术苑
01/04
25
0
从oracle往greenplum迁移,查询性能不满足要求的定位以及调优过程

一、前言 在一次对比oracle和greenplum查询性能过程中,由于greenplum查询性能不理想,因此进行定位分析,提升greenplum的查询性能 二、环境信息 初始情况下,搭建一个小的集群,进行性能测试...

yxly2008
2018/08/12
0
0
HIbernate基本映射数据类型

Hibernate的基本映射数据类型是Java基本类型与标准SQL类型相互转换的桥梁,通过Hibernate的基本映射数据类型可以非常方便地将数据从一种形式转换成另一种形式,完成高质量的ORM任务。 3种数据...

iborder
2016/11/10
47
0
细说JavaScript数据类型及转换

细说JavaScript数据类型及转换 JavaScript数据类型 1.Boolean(布尔) 布尔:(值类型)var b1=true;//布尔类型 2.Number(数字) 数值:(值类型)var n1=3.1415926;//数值类型 n1.toFixed...

开元中国2015
2015/07/13
98
1

没有更多内容

加载失败,请刷新页面

加载更多

面向海量数据的极致成本优化-云HBase的一体化冷热分离

前言 随着业务的持续发展,业务数据库存储量会持续增长。通常数据量过亿时,就需要考虑做分库分表,或者选择扩展能力更好的NOSQL/NewSQL数据库,如HBase就可以单表支持PB级数据,足够满足大多...

阿里云官方博客
32分钟前
3
0
最新最全国内外架构开源技术干货资料

大家好,废话不多说,整理了精心收集了各类资源。 声明,如侵犯个人利益,请联系小编,会立即删除相关资料。 领取方式在文末 求转发列表 好了,由于资源太多啦,就不一一列举了。 大家按照下...

泥瓦匠BYSocket
34分钟前
6
0
springmvc jsp访问不了css

在jsp中引入css,一直报404错误,直接访问css,也无法访问 将css文件移出WEB-INF,因为处于安全性考虑,这个目录禁止外部访问。 当引用css时,可以直接用绝对路径${pageContext.request.conte...

沉迷于编程的小菜菜
36分钟前
4
0
android 系统版本 9.1网络请求遇到坑

网络请求异常: E/http: CLEARTEXT communication to plat.xunlinkeji.cn not permitted by network security policy 在res下新建一个xml目录 创建名为network_security_config.xml 文件 ,该......

MrLins
54分钟前
5
0
Istio 1.3 发布,HTTP 遥测不再需要 Mixer

> 原文链接:Istio 1.3 发布,HTTP 遥测不再需要 Mixer Istio 是 Google、IBM 和 Lyft 联合开源的服务网格(Service Mesh)框架,旨在解决大量微服务的发现、连接、管理、监控以及安全等问题...

米开朗基杨
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部