首页 > 其他分享 >OushuDB 用户指南之类型转换值存储

OushuDB 用户指南之类型转换值存储

时间:2023-02-07 10:35:07浏览次数:33  
标签:类型转换 指南 存储 转换 text character 类型 长度 OushuDB


要插入表中的数值也根据下面的步骤转换成目标列的数据类型。

值存储数据类型解析

1. 查找与目标准确的匹配。

2. 否则,试着将表达式直接转换成目标类型。如果已知这两种类型之间存在一个已注册的转换函数, 那么直接调用该转换函数即可。如果表达式是一个未知类型文本, 该文本字符串的内容将交给目标类型的输入转换过程。

  1. 检查一下看看目标类型是否有长度转换。长度转换是一个从某类型到自身的转换。如果在pg_cast表里面找到一个,那么在存储到目标列之前先在表达式上应用。 这样的转换函数总是接受一个额外的类型为integer的参数, 它接收目标字段的atttypmod值(实际上是其声明长度,atttypmod 的解释随不同的数据类型而不同),并且它可能接受一个boolean类型的第三个参数, 表示转换是显式的还是隐式的。转换函数负责施加那些长度相关的语义,比如长度检查或者截断。

例.character存储类型转换

对一个目标列定义为character(20)的语句,下面的语句显示存储值的长度正确:

CREATE TABLE vv (v character(20));INSERT INTO vv SELECT 'abc' || 'def';SELECT v, octet_length(v) FROM vv;v | octet_length----------------------+--------------abcdef | 20(1 row)

这里真正发生的事情是两个 unknown 文本缺省解析成text, 这样就允许||操作符解析成text连接。 然后操作符的text结果转换成bpchar(“空白填充的字符型”, character类型内部名称)以匹配目标列类型。(因为从text 到bpchar的转换是二进制兼容的,这样的转换是隐含的并且实际上不做任何函数调用。)最后,在系统表里找到长度转换函数bpchar(bpchar, integer, boolean) 并且应用于该操作符的结果和存储的字段长。这个类型相关的函数执行所需的长度检查和额外的空白填充。

标签:类型转换,指南,存储,转换,text,character,类型,长度,OushuDB
From: https://blog.51cto.com/u_15334349/6041393

相关文章

  • OushuDB数据库基本用法(下)
    一个数据库包含多个模式(schema),而一个模式可以包含多种命名对象,比如表,数据类型,函数,操作符等。同一个对象名字可以用在不同的模式中而不产生冲突。比如schema1中可以包含表tes......
  • 偶数科技:基于OushuDB的新一代云原生湖仓一体为企业助力
    实时性数据分析需求暴增,偶数湖仓一体为企业助力在愈发复杂的大数据场景下,数据仓库与数据湖各自的弊端开始显现,湖仓一体架构走向舞台中央。在国外有两种流行的实现数据湖仓......
  • OushuDB连接带kerberos的HDFS
    一.KDC上的操作1.登录KDCserver,将Kerberos配置文件/etc/krb5.conf分发至KDW每个节点:scp/etc/krb5.conf10.0.5.58:/etc/scp/etc/krb5.conf10.0.5.146:/etc/scp/etc/......
  • OushuDB 创建和管理表空间
    OushuDB里的表空间允许数据库管理员在文件系统里定义那些代表数据库对象的文件存放位置。一旦创建了表空间,那么就可以在创建数据库对象的时候引用它。通过使用表空间,管理......
  • About OushuDB (Oushu Database)
    OverviewOushuDatabase(OushuDBforshort)isanewgenerationofcloud-nativedatawarehousecreatedbythefoundingteamofApacheHAWQ.Thisproductadoptst......
  • 09 数据库查询(3) | OushuDB 数据库使用入门
    表连接、组合查询大家好,本节课程我们将学习数据查询的进阶部分,主要包括表连接和组合查询。在上一节的课程中,我们尝试了在两个数据表中通过不同的条件来查询想要的数据,但是在......
  • 07 数据库查询(1) | OushuDB 数据库使用入门
    大家好,接下来我们一起学习数据查询的基础部分。 首先,什么是数据查询?从数据库中检索数据的过程或命令叫做查询。通用语法在SQL里,SELECT命令用于声明查询,通用语法如下:SE......
  • 06 数据操纵之数据更新与删除 | OushuDB 数据库使用入门
    更新数据修改已经存储在数据库中的数据的行为叫做更新。你可以更新单独的一行,也可以更新表中所有的行,还可以更新其中的一部分行。我们可以独立地更新每个列,而其它的列则不......
  • 05 数据操纵之插入数据 | OushuDB 数据库使用入门
    大家好,这一节课我们来学习数据操纵,在完成数据库的创建后,我们需要对数据库进行读写操作。最常见的数据操纵方式包括插入数据、更新数据和删除数据。目前OushuDB兼容的表格式......
  • 03 如何修改数据表? | OushuDB 数据库使用入门
    修改表当我们创建了一个表后发现自己犯了一个错误,或者是应用的需求发生了变化,那么我们可以删除这个表然后重新创建它。但是如果这个表已经填充了许多数据,或者该表已经被其它......