返回首页

gbase数据、南大通用产品文档:GBase8aDECLARE

更新日期:2024年09月11日

功能说明
DECLARE 语句用来声明局部变量。
说明

DECLARE 只能被用在BEGIN...END 复合语句之间,
且必须位于其它语句
之前。

游标必须在声明处理器变量之前被声明,并且条件必须在声明游标或处理
器前声明。

局部变量的作用范围在它被声明的BEGIN...END 块之间。
变量可以在嵌套
块中使用,除非在块中声明了同名的变量。
语法格式
DECLARE var_name[,...] type [DEFAULT value]
表5- 173 参数说明

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1357
参数名称


var_name
变量名
type
变量数据类型,值为GBase 8a MPP Cluster 支持的数据类型
DEFAULT value
设置变量的默认值。
这个值可以指定为一个表达式,或一
个常量。如果DEFAULT 缺少子句,初始值为NULL。
示例
示例1:DECLARE intX INT
gbase> DELIMITER //
gbase> DROP PROCEDURE IF EXISTS dodeclare //
Query OK, 0 rows affected
gbase> CREATE PROCEDURE dodeclare (p1 INT)
BEGIN
DECLARE intX INT;
SET intX = 0;
REPEAT SET intX = intX + 1; UNTIL intX > p1 END REPEAT;
SELECT intX;
END //
Query OK, 0 rows affected
gbase> DELIMITER ;
gbase> CALL dodeclare(1000);
+------+
| intX |
+------+
| 1001 |
+------+
1 row in set
Query OK, 0 rows affected
示例2:DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1
gbase> DELIMITER //
gbase> DROP PROCEDURE IF EXISTS curdemo //
Query OK, 0 rows affected
gbase> CREATE PROCEDURE curdemo()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE cnt INT DEFAULT 0;
DECLARE s_region CHAR(255);
DECLARE stmp CHAR(255) DEFAULT '';

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1358
DECLARE cur_region CURSOR FOR SELECT DISTINCT
c_region FROM ssbm.customer ORDER BY c_region LIMIT 1000;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000'
SET done = 1;
DROP TABLE IF EXISTS products;
CREATE TABLE products(region CHAR(255),count INT);
OPEN cur_region;
REPEAT
FETCH cur_region INTO s_region;
IF NOT done THEN
IF
stmp=''
THEN
SET stmp=s_region;
SET cnt=1;
END IF;
IF stmp!=s_region
THEN
INSERT INTO products(region,count)
VALUES(stmp,cnt);
SET cnt=1;
SET stmp=s_region;
END IF;
SET cnt=cnt+1;
END IF;
UNTIL done END REPEAT;
CLOSE cur_region;
INSERT INTO products(region,count) VALUES(stmp,cnt);
END //
Query OK, 0 rows affected
gbase> DELIMITER ;
gbase> CALL curdemo;
Query OK, 1 row affected
gbase> SELECT region,count FROM products;
+-----------------------------------------------------------+-------+
|region
|count|
+-----------------------------------------------------------+-------+
|AFRICA
|
2 |
|AMERICA
|
2 |
|ASIA
|
2 |
|EUROPE
|
2 |
|MIDDLEEAST
|
2 |
+------------------------------------------------------------+-------+
5 rows in set

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1359

功能说明
记录表占用的磁盘空间信息。从这个系统表中查询时,必须指定table_schema 及
table_name,不能模糊查询及汇总。
表结构说明
表5- 254 表结构信息说明:




TABLE_VC
待查询表所属的虚拟集群编码
TABLE_SCHEMA
待查询表所属的数据库名
TABLE_NAME
待查询表的表名
CREATE_TIME
待查询表的创建时间
UPDATE_TIME
待查询表的最后一次更新时间
TABLE_DATA_SIZE
数据占用空间
TABLE_STORAGE_SIZE
表占用的总空间
TABLE_TYPE
表类型:
replicated - 复制表;
random - 随机分布表;
ha'sh
- 哈希分布表;

取值:[0|1]
默认值:0
说明:导出文件表头大小写敏感功能开关。
1. 敏感,导出表头信息区分大小写
0. 不敏感,导出表头均转为小写
默认关闭。
修改方式:
可使用set 语句修改值也可在配置文件中修改值。
适用于session、
global
范围均可。