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。
EXECUTE FUNCTION task("check extents");
这个命令指导数据库服务器检查 extent,并返回指定命令成功或失败的消息。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