admin() 和 task() 函数返回代码

admin()task() 函数执行相同的任务,但产生不同的返回代码类型。如果您想要一个整数返回代码,则使用 admin() 函数,或者如果您想要一个文本的返回代码,则使用 task() 函数。

当您运行 admin()task() 函数时,函数:

admin()task() 函数的返回代码以不同的格式表明函数是成功了还是失败了:

admin()task() 函数指定的操作发生在一个单独的事务中,与在 command_history 表内插入新行的事务分开。如果成功地执行命令,但是在 command_history 表内插入失败,则命令生效,但是一个 online.log 错误条目指明该问题。

当调用这个函数时,如果 command_history.cmd_number 连续计数器是 200,且命令成功,则 GBase 8s 执行命令并返回整数 201。如果命令失败,则这个示例返回值 -201

假定 task() 函数执行了同一命令:
EXECUTE FUNCTION task("check extents");
这个命令指导数据库服务器检查 extent,并返回指定命令成功或失败的消息。
当调用这个函数时,如果 command_history.cmd_number 连续计数器是 201,且命令失败,则返回值是 -202。假定 DBSA 调用的下一个 SQL 管理 API 函数是这个:
EXECUTE FUNCTION admin('create dbspace',
   'dbspace2', '/work/CHUNKS/dbspace2', "20M");
如果在这种情况下命令成功,则返回的值是 203。DBSA 可使用下列查询来检查这些调用 admin() 函数插入 command_history 表的两行:
SELECT * FROM command_history WHERE cmd_number IN (202,203);
这个查询返回两行:
cmd_number      202
cmd_exec_time   2009-04-17 16:26:14
cmd_user        gbasedbt
cmd_hostname    olympia
cmd_executed    create dbspace
cmd_ret_status  -1
cmd_ret_msg     Unable to create file /work/dbspace2
                
cmd_number      203
cmd_exec_time   2009-04-17 16:26:15
cmd_user        gbasedbt
cmd_hostname    olympia
cmd_executed    create dbspace
cmd_ret_status  0 
cmd_ret_msg     created dbspace number 2 named dbspace2