返回首页

gbase数据、南大通用产品文档:GBase8a集群初始化

更新日期:2024年09月11日

操作场景
集群安装完毕且建立distribution 之后,在首次执行SQL 命令之前,需要对数据库
系统做初始化操作,才能正确执行所有的SQL 操作。
注意
如果不做初始化操作,执行数据库操作时会提示不能执行:
gbase> create database test;
ERROR 1707 (HY000): gcluster command error: (GBA-02CO-0003)
nodedatamap is not initialized.
操作步骤
使用数据库用户root 登录数据库(root 用户默认密码是空),执行initnodedatamap
命令。
$ gccli -uroot
GBase client 9.5.3.17.123187. Copyright (c) 2004-2020, GBase.
All Rights
Reserved.
gbase> initnodedatamap;
Query OK, 0 rows affected (Elapsed: 00:00:24.74)
注意
此命令只需执行一次,如果重复执行,会报告如下信息:
gbase> initnodedatamap;
ERROR 1707 (HY000): gcluster command error: (GBA-02CO-0004)
nodedatamap is already initialized.

GBase 8a MPP Cluster 产品手册
3 集群安装升级与卸载
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
72

货币类型存储带有固定小数精度的货币金额。
表3-5 中显示的范围假设有两位小数。可以以任意格式输入,包括整型、浮点型或者典
型的货币格式(如“$1,000.00”

。根据区域字符集,输出一般是最后一种形式。
名称
存储容量
描述
范围
money
8 字节
货币金额
-92233720368547758.08 到
+92233720368547758.07
numeric,int 和bigint 类型的值可以转化为money 类型。如果从real 和double precision
类型转换到money 类型,可以先转化为numeric 类型,再转化为money 类型,例如:
gbase=# SELECT '12.34'::float8::numeric::money;
money
--------
$12.34
(1 row)
这种用法是不推荐使用的。
浮点数不应该用来处理货币类型,
因为小数点的位数可能会
导致错误。
money 类型的值可以转换为numeric 类型而不丢失精度。
转换为其他类型可能丢失精度,
并且必须通过以下两步来完成:

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
50
gbase=# SELECT '52093.89'::money::numeric::float8;
float8
----------

结构
PL/SQL 块中可以包含子块,
子块可以位于PL/SQL 中任何部分。
PL/SQL 块的结构如下:

声明部分:声明PL/SQL 用到的变量、类型、游标、局部的存储过程和函数。
DECLARE

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
629

不涉及变量声明时声明部分可以没有。

对匿名块来说,没有变量声明部分时,可以省去DECLARE 关键字。

对存储过程来说,没有DECLARE,AS 相当于DECLARE。即便没有变量声明的
部分,关键字AS 也必须保留。

执行部分:过程及SQL 语句,程序的主要部分。必选。
BEGIN

执行异常部分:错误处理。可选。
EXCEPTION

结束
END;
/

禁止在PL/SQL 块中使用连续的Tab,
连续的Tab 可能会造成在使用gsql 工具带
“-
r”参数执行PL/SQL 块时出现异常。