返回首页

gbase数据、南大通用产品文档:GBase8s更新 row 类型表达式

更新日期:2024年09月11日

从 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 类型变量。

SHOW CREATE FUNCTION
功能说明
显示给定自定义函数的创建语句。
语法格式
SHOW CREATE FUNCTION [vc_name.][database_name.]func_name;
表5- 128 参数说明
参数名称


vc_name
vc 名,可选项。
database_name
数据库名,可选项。
func_name
自定义函数名。
示例
示例1:显示创建hello 函数的语句。
gbase> show create function vc1.demo.hello\G
*************************** 1. row ***************************
Function: hello
sql_mode:
PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROU
P_BY,NO_AUTO_VALUE_ON_ZERO,STRICT_ALL_TABLES,NO_ZERO_IN
_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTI
TUTION,PAD_CHAR_TO_FULL_LENGTH
Create Function: CREATE DEFINER="root"@"%" FUNCTION "hello"(s
CHAR(20)) RETURNS char(50) CHARSET utf8
RETURN CONCAT('Hello, ',s,'!')
character_set_client: utf8
collation_connection: utf8_general_ci
Database Collation: utf8_general_ci
1 row in set (Elapsed: 00:00:00.00)

REPLICATION_SLOTS 视图用于查看复制节点的信息。
名称
类型
描述
slot_name
text
复制节点的名称。
plugin
text
插件名称。
slot_type
text
复制节点的类型。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1058
名称
类型
描述
datoid
oid
复制节点的数据库OID。
database
name
复制节点的数据库名称。
active
boolean
复制节点是否为激活状态。
xmin
xid
复制节点事务标识。
catalog_xmin
xid
逻辑复制槽对应的最早解码事务标识。
restart_lsn
text
复制节点的Xlog 文件信息。
dummy_standb
y
boolean
复制节点是否为假备。