默认分类,存储过程
只是一个默认分类

GBase 8s 系统表syscolumns字段说明

syscolumns表结构

系统表syscolumns保存的是表的字段信息。其包含的主要字段如下:

字段名称字段类型说明
colnameVARCHAR(128)字段名称
tabidINTEGER该字段所属的表的唯一ID
colnoSMALLINT字段编号(表内)
coltypeSMALLINT字段的数据类型(数字形式)
collength对不同的数据类型有不同解释:
基本数值类型
可变长字符型
时间类型
定点数据类型
简单大对象
IDSSECURITYLABEL
取决于数据类型
colminINTEGER最小字段长度(单位:字节)
colmaxINTEGER最大字段长度(单位:字节)
extended_idINTEGER从系统表sysxtdtypes而来的数据类型编码
seclabelidINTERGER总是NULL
colattrSMALLINT字段属性:
HIDDEN: 1 - 隐藏字段
ROWVER: 2 - 行版本字段
ROW_CHKSUM: 4 - 行键字段
ER_CHECKVER: 8 - ER行版本字段
UPGRD1_COL:16 - ER自动主键字段
UPGRD2_COL: 32 - ER自动主键字段
UPGRD3_COL: 64 - ER自动主键字段
PK_NOTNULL: 128 - 主键非空

说明:在tabid和colno上建有复合主键。















阅读全文»

GBase 8s获取第几周、第几天的函数

Oracle数据库中获取某个日期是当年的第几周、当月的第几周、当年的第几天均可以使用to_char来获取。

to_char(sysdate,'WW');    -- 当年第几周,以01-01 至 01-07为第一周
to_char(sysdate,'W');     -- 当月第几周,以01 至 07为第一周
to_char(sysdate,'DDD');   -- 当年第几天,以01-01 为 001

GBase 8s的to_char尚未实际该功能,因此需要使用自定义函数来实现,具体如下:
当年的第几周

drop function if exists weekofyear(datetime year to second);
-- day of year, first week is 01-01 ~ 01-07
create function weekofyear(p_datetime datetime year to second) returns int with (not variant);
  return trunc(1 + (p_datetime - TRUNC(p_datetime, 'YEAR')) / 7);
end function;

阅读全文»

GBase 8s 普通表转换成分片表的方式分析

GBase 8s中的普通表可以通过两种方式转换成分片表:通过init初始化为分片表;通过attach加入新建的分片表。
以下面的测试表t1为例:

create table t1(col1 int, col2 datetime year to second, col3 varchar(128)) in datadbs01;
create index ix_t1_col1 on t1(col1);

以下将以col2字段按月进行表分片。


阅读全文»

GBase 8s 存储加密配置

1. 概述

存储加密一种数据库安全技术, 在数据库主程序启动时加载扩展插件,可以实现:
(1)在数据写入存储介质前将数据进行加密,实现数据的存储加密;
(2)在从存储介质加载数据到内存前进行数据解密,实现数据的解密使用。
GBase 8s使用存储加密必须要数据库初始化之前完成数据库参数及存储加密参数的配置。
本文基于数据库版本为GBase 8s V8.7 2.0.1a2_2,操作系统为CentOS 7.8编写。

2. 配置文件配置

2.1. secswitch.std配置文件

数据库实例GBASEDBTSERVER使用secswitch.$GBASEDBTSERVER(该文件以secswitch.std为模板)为名的配置,配置文件位$GBASEDBTDIR/etc目录下。
需要修改的参数包括:






阅读全文»

GBase 8s 传输加密SSL配置

1. 概述

数据传输加密是指在网络中传输的数据需要加密传输,从而确保数据的机密性和完整性。
针对网络中传输的数据进行加密,焦点就在连接上。对于GBase 8s体系下,总共有如下连接场景需要进行数据传输加密:
1) 客户端连接数据库服务端,包含:csdk或jdbc连接GBase 8s。
2) 客户端连接到连接管理器,包含:csdk或jdbc连接连接管理器。无论连接管理器选择代理,还是重定向,客户端都会建立到连接管理器的连接。
3) 连接管理器连接数据库服务端。
4) 数据库服务端连接数据库服务端。对于高可用环境,数据库服务端之间是存在连接的。
对于连接而言,数据库服务端和连接管理器都存在组的概念。客户端可以选择连接数据库服务端的组或者连接管理器的组。经过调研,真正的连接不是建立在组上的。客户端代码,会根据sqlhosts的配置,在连接前选择合适数据库服务端或连接管理器进行连接。根据这个情况,对于组的连接不需要专门讨论。
本文基于数据库版本为GBase 8s V8.7 2.0.1a2_2,操作系统为CentOS 7.8编写。








阅读全文»

GBase 8s内置不透明数据类型BSON和JSON

  BSON和JSON数据类型是GBase 8s内置的不透明类型(opaque data type),可以在本地和分布式查询以及其它DML操作中访问和操作它们。如果您计划通过wire listener查询BSON或者JSON数据,则必须通过wire listener创建数据库对象,例如集合和索引。无论您通过wire listener还是SQL语句创建的数据库对象,均可以通过SQL语句查询JSON或者BSON数据。
  JSON和BSON文档包含一个或者多个类似于列的字段和字段值。一个JSON或者BSON列可以包含多个文档,每个文档类似于关系数据库中的一行。JSON和BSON文档中的数据可能是数字、字符串或者布尔氏值。文档可以嵌套在文档中。
  数据库服务器验证您插入到数据库中的JSON或都BSON文档。JSON数据类型包含纯文件。BSON数据类型是JSON数据类型的二进制格式。您可以创建JSON或者BSON数据类型列,但是BSON数据类型更适合在数据库中存储结构化数据。数据库服务器可以操作BSON列中的数据,但只能插入和显示JSON列中的数据。
  800字节以内的JSON或者BSON文档将存储于行内,大于800字节的文档将存储于sbspace空间内。一个JSON或者BSON文档的最大大小是32KB。JSON或者BSON的列数量仅受操作系统的限制。




阅读全文»

【案例分析】创建存储过程报错误282: Found a quote for which there is no matching quote.

创建存储过程时第4行报282错误,该错误的原是说引号不匹配。创建的存储过程语句如下:

drop procedure if exists proc1;
create procedure proc1(out p_cursor sys_refcursor)
  define v_sqlstr lvarchar(1024);
  let v_sqlstr = "select tabid,tabname 
                  from systables
                  where tabid > 99
                    and tabtype = 'T'";
  open p_cursor for v_sqlstr;
end procedure;

阅读全文»

Docker 搭建 GBase 8s数据库服务

前置条件

1,Docker服务已经创建
2,足够的空间(GBase 8s For Docker最少需要2G的空间及1G以上的内存)

具体步骤

1,查找GBase 8s 镜像版本

[root@localhost ~]# docker search gbase8s
NAME                DESCRIPTION             STARS               OFFICIAL            AUTOMATED
liaosnet/gbase8s    GBase8sV8.7_2.0.1a2_2   1                                       

阅读全文»

GBase 8s TimeSeries(时间序列) 指南

时间序列概念

时间序列数据类型(TimeSeries data type)
元素(Element)
包装元素(Packed Element)
时间点(Time point)
起点(Origin):
时间序列实例(TimeSeries Instance)
日历(Calendar)
日历模式(Calendar pattern)
容器(Container)
规则性(Regularity)
虚表(Virtual table)











阅读全文»

[GBase 8s 教程]GBase 8s 存储过程中的异常处理

异常捕获:ON EXCEPTION

用ON EXCEPTION 语句捕获一个或一组特定的异常(即错误),用错误号 标识。
ON EXCEPTION 语句与RAISE EXCEPTION 语句一起 提供存储过程语言(SPL)的错误 捕获和恢复机制。
在一个语句块内可以定义多个 ON EXCEPTION 语句。
被捕获的异常可以是系统异常或用户定义的异常。
一旦异常被捕获, 错误状态即被清除。





阅读全文»