返回首页

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

更新日期:2024年09月11日

ABS(X)
函数说明
返回X 的绝对值。这个函数支持使用BIGINT 值。
示例
示例1:X 为正数。
gbase> SELECT ABS(2) FROM dual;
+--------+
| ABS(2) |
+--------+
|
2 |
+--------+
1 row in set
示例2:X 为负数。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
747
gbase> SELECT ABS(-32) FROM dual;
+----------+
| ABS(-32) |
+----------+
|
32 |
+----------+
1 row in set

在您成功地创建并运行 SPL 例程之后,
您可遇到逻辑错误。
如果例程有逻辑错误,
则请使
用 TRACE 语句来帮助查找它们。您可跟踪下列项的值:

变量

参数

返回值

SQL 错误代码

ISAM 错误代码
要生成被跟踪的值的列表,
首先请使用 SQL 语句 SET DEBUG FILE 来命名包含被跟踪的
输出的文件。当您创建 SPL 例程时,请包括 TRACE 语句。
下列方法指定 TRACE 输出的形式。
语句
操作
TRACE ON
跟踪 SQL 语句之外的所有语句。在使用变量之前,打印它们的内容。跟踪例程调
用和返回的值。
TRACE PROCEDURE
仅跟踪例程调用和返回的值。
TRACE expression
打印文字或表达式。如果必要,在将表达式的值发送至文件之前,计算它。

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 324 -

下图演示您可如何使用 TRACE 语句来监视 SPL 函数执行的方式。
图: TRACE 语句。
CREATE FUNCTION read_many (lastname CHAR(15))
RETURNING CHAR(15), CHAR(15), CHAR(20), CHAR(15),
CHAR(2), CHAR(5);

DEFINE p_lname,p_fname, p_city CHAR(15);
DEFINE p_add CHAR(20);
DEFINE p_state CHAR(2);
DEFINE p_zip CHAR(5);
DEFINE lcount, i INT;

LET lcount = 1;

TRACE ON; -- 从此开始跟踪每个表达式
TRACE 'Foreach starts'; -- 跟踪带有文字的语句

FOREACH
SELECT fname, lname, address1, city, state, zipcode
INTO p_fname, p_lname, p_add, p_city, p_state, p_zip

FROM customer
WHERE lname = lastname
RETURN p_fname, p_lname, p_add, p_city, p_state, p_zip
WITH RESUME;
LET lcount = lcount + 1; -- 对返回的地址计数
END FOREACH

TRACE 'Loop starts'; -- 另一文字
FOR i IN (1 TO 5)
BEGIN
RETURN i , i+1, i*i, i/i, i-1,i WITH RESUME;
END
END FOR;

END FUNCTION;

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 325 -

使用 TRACE ON 语句,
在您每次执行被跟踪的例程时,
都将条目添加到您在 SET DEBUG
FILE 语句中指定了的文件。要查看调试条目,请使用任何文本编辑器来查看该输出文件。

下列列表包含前面的示例中函数生成的一些输出。每一被跟踪的语句之后是对它的内容的
解释。
语句
操作
TRACE ON
回送 TRACE ON 语句。
TRACE Foreach starts
在此情况下,跟踪表达式,文字字符串 Foreach 开始。
start select cursor
提供打开游标来处理 FOREACH 循环的通知。
select cursor iteration
提供选择游标的每一迭代的开始的通知。
expression: (+lcount, 1)
对遇到的表达式 (lcount+1) 求值为 2。
let lcount = 2
以该值回送每一 LET 语句。

使用 DRTIMEOUT 配置参数来指定以秒计的时间长度,
是在高可用性数据库服务器对中数据
库服务器等待其他数据库服务器发来迁移确认的时长。此参数仅适用于高可用性数据复制
对。
onconfig.std 值
DRTIMEOUT 30

正整数
单位

生效
编辑 onconfig 文件并重启数据库服务器之后。
当您通过运行 onmode -wf 命令在 onconfig 文件中动态地重置该值时。
当您通过运行 onmode -wm 命令重置内存中的该值时。
用法
使用下列公式来计算为 DRTIMEOUT 配置参数指定的值:
DRTIMEOUT = wait_time / 4

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 68 -
在此公式中,wait_time 时以秒计的时间长度,是在服务器认定高可用性数据复制发生故障
之前,高可用性数据复制对中数据库服务器等待的时长。
例如,您确定系统的 wait_time 是 160 秒。使用先前的公式设置 DRTIMEOUT 如下:
DRTIMEOUT = 160 秒 / 4 = 40 秒