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