返回首页

gbase数据、南大通用产品文档:GBase8s关于本出版物

更新日期:2024年09月11日

本出版物说明如何使用独立的安装应用程序,而不是包含数据库服务器产品的
GBase
8s 捆绑软件来安装 GBase
8s
Client
Software
Development
Kit
(Client
SDK) 和 GBase 8s Connect。
本出版物是为安装 GBase
8s 客户机产品的数据库管理员和软件工程师编写的,
并假定
您熟悉自己计算机上的操作系统。
重要: 请参阅《GBase 8s JDBC Driver 程序员指南》,了解 JDBC 驱动程序的安装信息。

onconfig.std 值
RESTARTABLE_RESTORE ON

ON = 启用可重启恢复
OFF = 禁用可重启恢复
生效
编辑 onconfig 文件并重启数据库服务器之后。
如果您设置 RESTARTABLE_RESTORE 为 ON,则您使数据库服务器能够在发生故障的点上重
启一个失败的物理恢复或冷逻辑恢复。要以 ON-Bar 执行可重启的恢复,请使用 onbar
-RESTART 命令。
如果您打算使用可重启恢复,则请增加物理日志的大小。如果需要恢复许多日志,虽然可
重启恢复降低逻辑恢复的速度,但您会节约许多时间,不必重复进行完整恢复。
重要: 如果在热逻辑恢复期间数据库服务器发生故障,则您必须重复进行完整恢复。如果
数据库服务器仍在运行,则请使用 onbar -r -l 来完成恢复。
如果您在不完全相同的系统上进行冷恢复,则可指定到 chunk 的新路径名,且您可在恢复
期间重命名关键 chunk 的设备。重命名和恢复操作完成之后,您必须执行 0 级归档。
数据库服务器使用下列物理恢复和逻辑恢复来恢复数据:
 物理恢复。数据库服务器从备份介质将数据页写到磁盘。这个行动使得存储空间与
其最初被备份的点保持一致。然而,每一存储空间的备份时间通常不相同。可重
启恢复可重启到存储空间的级别。当恢复失败时,如果仅恢复了存储空间的部分
chunk,则当您重启恢复时,需要再次恢复整个存储空间。
 逻辑恢复。数据库服务器重放介质上的逻辑日志记录来使所有存储空间为最新。在
逻辑恢复结束时,所有存储空间都与同一点保持一致。

功能描述
使用CALL 命令可以调用已定义的函数和存储过程。
注意事项
函数或存储过程的所有者、被授予了函数或存储过程EXECUTE 权限的用户或被授予
EXECUTE ANY FUNCTION 权限的用户有权调用函数或存储过程,系统管理员默认拥有此
权限。
语法格式
CALL [ schema. ] func_name ( param_expr );
参数说明

schema
函数或存储过程所在的模式名称。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
807

param_expr
参数列表可以用符号“:=”或者“=>”将参数名和参数值隔开,
这种方法的好处是参数可以
以任意顺序排列。
若参数列表中仅出现参数值,
则参数值的排列顺序必须和函数或存储过程
定义时的相同。
取值范围:已存在的函数参数名称或存储过程参数名称。
说明:参数可以包含入参(参数名和类型之间指定“IN”关键字)和出参(参数
名和类型之间指定“OUT”关键字)
,使用CALL 命令调用函数或存储过程时,对于非重载
的函数,参数列表必须包含出参,出参可以传入一个变量或者任一常量,详见示例。对于重
载的package 函数,参数列表里可以忽略出参,忽略出参时可能会导致函数找不到。包含出
参时,出参只能是常量。
示例
--创建一个函数func_add_sql,计算两个整数的和,并返回结果。
gbase=#CREATE FUNCTION func_add_sql(num1 integer, num2 integer) RETURN integer
AS
BEGIN
RETURN num1 + num2;
END;
/
--按参数值传递。
gbase=#CALL func_add_sql(1, 3);
--使用命名标记法传参。
gbase=#CALL func_add_sql(num1 => 1,num2 => 3);
gbase=#CALL func_add_sql(num2 := 2, num1 := 3);

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
808
--删除函数。
gbase=#DROP FUNCTION func_add_sql;
--创建带出参的函数。
gbase=#CREATE FUNCTION func_increment_sql(num1 IN integer, num2 IN integer, res OUT
integer)
RETURN integer
AS
BEGIN
res := num1 + num2;
END;
/
--出参传入常量。
gbase=#CALL func_increment_sql(1,2,1);
--删除函数。
gbase=#DROP FUNCTION func_increment_sql;