返回首页

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

更新日期:2024年09月11日

GBA-02IS-0002
错误码
错误标识
错误信息
GBA-02IS-0002

get column hash information error
错误出现原因
获取column hash 信息错误
分析与建议
无法根据计算的hash 值计算出数据应该放到哪个节点上,原因是nodedatamap
表查询有误。

从 SPL 例程内,
您可使用 ROW 变量来更新 row 类型表达式。
下图展示当员工的基本薪
酬按某一百分比增长时,用于更新 emp_info 表的 SPL 过程 emp_raise。
图: 用于更新 emp_info 表的 SPL 过程。
CREATE PROCEDURE emp_raise( name VARCHAR(30),
pct DECIMAL(3,2) )

DEFINE row_var salary_t;

SELECT salary INTO row_var FROM emp_info
WHERE emp_name = name;

LET row_var.base = row_var.base * pct;

UPDATE emp_info SET salary = row_var
WHERE emp_name = name;
END PROCEDURE;

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 298 -
SELECT 语句将来自 emp_info 表的 salary 列的行选择到 ROW 变量 row_var 内。
emp_raise 过程使用 SPL 点符号表示法来直接地访问变量 row_var 的 base 字段。在此情况
下,点符号表示法意味着 variable.field。emp_raise过程重新计算 row_var.base 的值作
为 (row_var.base * pct)。然后,该过程以新的 row_var 值来更新 emp_info 表的 salary 列。
重要: 在可设置或引用 row 类型变量字段之前,必须将它初始化为行。您可以 SELECT INTO
语句或 LET 语句初始化 row 类型变量。

Illegal cursor name
指定游标名称无效。请确保传入的字符串不是 NULL 或空。