返回首页

gbase数据、南大通用产品文档:GBase8a刷新存储过程

更新日期:2024年09月11日


“数据库导航”
中,
右键单击Schema 节点下的存储过程节点中的存储过
程,选择菜单中的“刷新”菜单项,将对存储过程进行刷新,如下图所示:

GBaseDataStudio 管理工具手册
南大通用数据技术股份有限公司
- 207 -
图5- 577 刷新存储过程

PKG_SERVICE 支持的所有接口请参见表17-1。
表17-1 PKG_SERVICE
接口名称
描述
PKG_SERVICE.SQL_IS_CONTEXT_ACTI
VE
确认该CONTEXT 是否已注册。
PKG_SERVICE.SQL_CLEAN_ALL_CONT
EXTS
取消所有注册的CONTEXT。
PKG_SERVICE.SQL_REGISTER_CONTEX
T
注册一个CONTEXT。
PKG_SERVICE.SQL_UNREGISTER_CONT
EXT
取消注册该CONTEXT。
PKG_SERVICE.SQL_SET_SQL
向CONTEXT 设置一条SQL 语句,目前只
支持SELECT。
PKG_SERVICE.SQL_RUN
在一个CONTEXT 上执行设置的SQL 语句。
PKG_SERVICE.SQL_NEXT_ROW
读取该CONTEXT 中的下一行数据。
PKG_SERVICE.SQL_GET_VALUE
读取该CONTEXT 中动态定义的列值
PKG_SERVICE.SQL_SET_RESULT_TYPE
根据类型OID 动态定义该CONTEXT 的一
个列。
PKG_SERVICE.JOB_CANCEL
通过任务ID 来删除定时任务。
PKG_SERVICE.JOB_FINISH
禁用或者启用定时任务。
PKG_SERVICE.JOB_SUBMIT
提交一个定时任务。作业号由系统自动生成

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
679
接口名称
描述
或由用户指定。
PKG_SERVICE.JOB_UPDATE
修改定时任务的属性,包括任务内容、下次
执行时间、执行间隔。
PKG_SERVICE.SUBMIT_ON_NODES
提交一个任务到所有节点,作业号由系统自
动生成。
PKG_SERVICE.ISUBMIT_ON_NODES
提交一个任务到所有节点,作业号由用户指
定。
PKG_SERVICE.SQL_GET_ARRAY_RESU
LT
获取该CONTEXT 中返回的数组值。
PKG_SERVICE.SQL_GET_VARIABLE_RE
SULT
获取该CONTEXT 中返回的列值。

PKG_SERVICE.SQL_IS_CONTEXT_ACTIVE
该函数用来确认一个CONTEXT 是否已注册。该函数传入想查找的CONTEXT ID,如
果该CONTEXT 存在返回TRUE,反之返回FALSE。
PKG_SERVICE.SQL_IS_CONTEXT_ACTIVE 函数原型为:
PKG_SERVICE.SQL_IS_CONTEXT_ACTIVE(
context_id
IN INTEGER
)
RETURN BOOLEAN;
表17-2 PKG_SERVICE.SQL_IS_CONTEXT_ACTIVE 接口说明
参数名称
描述
context_id
想查找的CONTEXT ID 号

PKG_SERVICE.SQL_CLEAN_ALL_CONTEXTS
该函数用来取消所有CONTEXT
PKG_SERVICE.SQL_CLEAN_ALL_CONTEXTS 函数原型为:
PKG_SERVICE.SQL_CLEAN_ALL_CONTEXTS(

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
680
)
RETURN VOID;

PKG_SERVICE.SQL_REGISTER_CONTEXT
该函数用来打开一个CONTEXT,是后续对该CONTEXT 进行各项操作的前提。该函
数不传入任何参数,内部自动递增生成CONTEXT ID,并作为返回值返回给integer 定义的
变量。
PKG_SERVICE.SQL_REGISTER_CONTEXT 函数原型为:
DBE_SQL.REGISTER_CONTEXT(
)
RETURN INTEGER;

PKG_SERVICE.SQL_UNREGISTER_CONTEXT
该函数用来关闭一个CONTEXT,是该CONTEXT 中各项操作的结束。如果在存储过
程结束时没有调用该函数,则该CONTEXT 占用的内存仍然会保存,因此关闭CONTEXT
非常重要。由于异常情况的发生会中途退出存储过程,导致CONTEXT 未能关闭,因此建
议存储过程中有异常处理,将该接口包含在内。
PKG_SERVICE.SQL_UNREGISTER_CONTEXT 函数原型为:
PKG_SERVICE.SQL_UNREGISTER_CONTEXT(
context_id
IN INTEGER
)
RETURN INTEGER;
表17-3 PKG_SERVICE.SQL_UNREGISTER_CONTEXT 接口说明
参数名称
描述
context_id
打算关闭的CONTEXT ID 号

PKG_SERVICE.SQL_SET_SQL
该函数用来解析给定游标的查询语句,被传入的查询语句会立即执行。目前仅支持
SELECT 查询语句的解析,且语句参数仅可通过text 类型传递,长度不大于1G。
PKG_SERVICE.SQL_SET_SQL 函数的原型为:

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
681
PKG_SERVICE.SQL_SET_SQL(
context_id
IN INTEGER,
query_string
IN TEXT,
language_flag
IN INTEGER
)
RETURN BOOLEAN;
表17-4 PKG_SERVICE.SQL_SET_SQL 接口说明
参数名称
描述
context_id
执行查询语句解析的CONTEXT ID
query_string
执行的查询语句
language_flag
版本语言号,目前只支持1

PKG_SERVICE.SQL_RUN
该函数用来执行一个给定的CONTEXT。该函数接收一个CONTEXT ID,运行后获得
的数据用于后续操作。目前仅支持SELECT 查询语句的执行。
PKG_SERVICE.SQL_RUN 函数的原型为:
PKG_SERVICE.SQL_RUN(
context_id
IN INTEGER,
)
RETURN INTEGER;
表17-5 PKG_SERVICE.SQL_RUN 接口说明
参数名称
描述
context_id
执行查询语句解析的CONTEXT ID

PKG_SERVICE.SQL_NEXT_ROW
该函数返回符合查询条件的数据行数,每一次运行该接口都会获取到新的行数的集合,
直到数据读取完毕获取不到新行为止。
PKG_SERVICE.SQL_NEXT_ROW 函数的原型为:
PKG_SERVICE.SQL_NEXT_ROW(

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
682
context_id
IN INTEGER,
)
RETURN INTEGER;
表17-6 PKG_SERVICE.SQL_NEXT_ROW 接口说明
参数名称
描述
context_id
执行的CONTEXT ID

PKG_SERVICE.SQL_GET_VALUE
该函数用来返回给定CONTEXT 中给定位置的CONTEXT 元素值,该接口访问的是
PKG_SERVICE.SQL_NEXT_ROW 获取的数据。
PKG_SERVICE.SQL_GET_VALUE 函数的原型为:
PKG_SERVICE.SQL_GET_VALUE(
context_id
IN
INTEGER,
pos
IN
INTEGER,
col_type
IN
ANYELEMENT
)
RETURN ANYELEMENT;
表17-7 PKG_SERVICE.SQL_GET_VALUE 接口说明
参数名称
描述
context_id
执行的CONTEXT ID
pos
动态定义列在查询中的位置
col_type
任意类型变量,定义列的返回值类型

PKG_SERVICE.SQL_SET_RESULT_TYPE
该函数用来定义从给定CONTEXT 返回的列,该接口只能应用于SELECT 定义的
CONTEXT
中。定义的列通过查询列表的相对位置来标识,
PKG_SERVICE.SQL_SET_RESULT_TYPE 函数的原型为:
PKG_SERVICE.SQL_SET_RESULT_TYPE(
context_id
IN INTEGER,
pos
IN INTEGER,

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
683
coltype_oid
IN ANYELEMENT,
maxsize
IN INTEGER
)
RETURN INTEGER;
表17-8 PKG_SERVICE.SQL_SET_RESULT_TYPE 接口说明
参数名称
描述
context_id
执行的CONTEXT ID。
pos
动态定义列在查询中的位置。
coltype_oid
任意类型的变量,可根据变量类型得到对应
类型OID。
maxsize
定义的列的长度。

PKG_SERVICE.JOB_CANCEL
存储过程CANCEL 删除指定的定时任务。
PKG_SERVICE.JOB_CANCEL 函数原型为:
PKG_SERVICE.JOB_CANCEL(
job
IN
INTEGER);
表17-9 PKG_SERVICE.JOB_CANCEL 接口参数说明
参数
类型
入参/出参
是否可以为空
描述
id
integ
er
IN

指定的作业号。
示例:
CALL PKG_SERVICE.JOB_CANCEL(101);

PKG_SERVICE.JOB_FINISH
存储过程FINISH 禁用或者启用定时任务。
PKG_SERVICE.JOB_FINISH 函数原型为:
PKG_SERVICE.JOB_FINISH(

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
684
id
IN
INTEGER,
broken
IN
BOOLEAN,
next_time
IN
TIMESTAMP
DEFAULT
sysdate);
表17-10 PKG_SERVICE.JOB_FINISH 接口参数说明
参数
类型
入参/
出参
是否可
以为空
描述
id
integer
IN

指定的作业号。
broken
Boolean
IN

状态标志位,
true 代表禁用,
false 代表启用。
根据true 或false 值更新当前job;
如果为空
值,则不改变原有job 的状态。
next_tim
e
timestam
p
IN

下次运行时间,
默认为当前系统时间。
如果
参数broken 状态为true,则更新该参数为'4
000-1-1';如果参数broken 状态为false,且
如果参数next_time 不为空值,则更新指定
job 的next_time 值,
如果next_time 为空值,
则不更新next_time 值。该参数可以省略,
为默认值。

PKG_SERVICE.JOB_SUBMIT
存储过程JOB_SUBMIT 提交一个系统提供的定时任务。
PKG_SERVICE.JOB_SUBMIT 函数原型为:
PKG_SERVICE.JOB_SUBMIT(
id
IN
BIGINT DEFAULT,
content
IN
TEXT,
next_date
IN
TIMESTAMP DEFAULT sysdate,
interval_time IN
TEXT
DEFAULT 'null',
job
OUT
INTEGER);
说明:当创建一个定时任务(JOB)时,系统默认将当前数据库和用户名与当前
创建的定时任务绑定起来。该接口函数可以通过call 或select 调用,如果通过select 调用,
可以不填写出参。
如果在存储过程中,
则需要通过perform 调用该接口函数。
如果提交的sql
语句任务使用到非public 的schema,应该指定表或者函数的schema,或者在sql 语句前添
加set current_schema = xxx;语句。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
685
表17-11 PKG_SERVICE.JOB_SUBMIT 接口参数说明
参数
类型
入参/出

是否
可以
为空
描述
id
bigint
IN

作业号。如果传入id 为NULL,则内部会生成
作业ID。
context
text
IN

要执行的SQL 语句。支持一个或多个‘DML’,
‘匿名块’,
‘调用存储过程的语句’或3 种混合的
场景。
next_time
times
tamp
IN

下次作业运行时间。默认值为当前系统时间(s
ysdate)。如果是过去时间,在提交作业时表示
立即执行。
interval_t
ime
text
IN

用来计算下次作业运行时间的时间表达式,可
以是interval 表达式,也可以是sysdate 加上一
个numeric 值(例如:sysdate+1.0/24)。如果
为空值或字符串”null”表示只执行一次,
执行后
JOB 状态STATUS 变成'd' 不再执行。
job
integ
er
OUT

作业号。范围为1~32767。当使用select 调用
pkg_service.job_submit 时,该参数可以省略。
示例:
SELECT PKG_SERVICE.JOB_SUBMIT(NULL, 'call pro_xxx();',
to_date('20180101','yyyymmdd'),'sysdate+1');
SELECT PKG_SERVICE.JOB_SUBMIT(NULL, 'call pro_xxx();',
to_date('20180101','yyyymmdd'),'sysdate+1.0/24');
CALL PKG_SERVICE.JOB_SUBMIT(NULL, 'INSERT INTO T_JOB
VALUES(1);
call pro_1();
call pro_2();', add_months(to_date('201701','yyyymm'),1),
'date_trunc(''day'',SYSDATE) + 1 +(8*60+30.0)/(24*60)' ,:jobid);
SELECT PKG_SERVICE.JOB_SUBMIT (101, 'insert_msg_statistic1;', sysdate,
'sysdate+3.0/24');

PKG_SERVICE.JOB_UPDATE

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
686
存储过程UPDATE 修改定时任务的属性,包括任务内容、下次执行时间、执行间隔。
PKG_SERVICE.JOB_UPDATE 函数原型为:
PKG_SERVICE.JOB_UPDATE(
id
IN
BIGINT,
next_time
IN
TIMESTAMP,
interval_time
IN
TEXT,
content
IN
TEXT);
表17-12 PKG_SERVICE.JOB_UPDATE 接口参数说明
参数
类型
入参
/出

是否可
以为空
描述
id
integer
IN

指定的作业号。
next_ti
me
timest
amp
IN

下次运行时间。如果该参数为空值,则不更新指
定job 的next_time 值,否则更新指定job 的next_
time 值。
interva
l_time
text
IN

用来计算下次作业运行时间的时间表达式。如果
该参数为空值,则不更新指定job 的interval_time
值;如果该参数不为空值,会校验interval_time
是否为有效的时间类型或interval 类型,则更新指
定job 的interval_time 值。如果为字符串”null”表
示只执行一次,
执行后JOB 状态STATUS 变成'd'
不再执行。
content
text
IN

执行的存储过程名或者sql 语句块。
如果该参数为
空值,则不更新指定job 的content 值,否则更新
指定job 的content 值。
示例:
CALL PKG_SERVICE.JOB_UPDATE(101, 'call userproc();', sysdate, 'sysdate +

db2to8a 安装包以tar.bz2 的压缩形式提供。例如:db2to8a_24816_Redhat6.2_
x86_64.tar.bz2。
说明
在该tar.bz2 文件中

db2to8a:代表工具的名称;

24816:代表该工具的版本号;

Redhat6.2:代表该工具运行的操作系统为Red hat 6.2;

x86_64:代表该工具是一个运行在64 位操作系统下的工具。