分类: DB2/Informix
2008-05-31 18:25:21
SQL 管理 API 函数
SQL 管理 API 是内置的 SQL 管理 API 函数,可通过 SQL 的 EXECUTE Ffunction 语句完成管理性任务,该语句可以模仿 Dynamic Server 的各种管理命令行实用工具。
ADMIN 和 TASK 内置函数只在每个 Dynamic Server 实例的 sysadmin 数据库中做了定义。这些函数只能由用户 Informix 调用。
使用相同参数列表调用 admin( ) 和 task( ) 函数的结果是相同的;只是返回的值不同:
task() UDR 返回描述返回状态的字符串
admin() UDR 返回一个整数返回状态,表示到 command_history 表的链接
| 列 | 数据类型 | 说明 |
|---|---|---|
| cmd_number | serial | 每行的惟一 ID |
| cmd_exec_time | datetime year-to-second | 发出命令的时间 |
| cmd_user | varchar | 执行命令的用户 |
| cmd_hostname | varchar | 执行命令的主机的名称 |
| cmd_executed | varchar | 执行的命令 |
| cmd_ret_status | integer | 返回代码 |
| cmd_ret_msg | lvarchar | 返回消息 |
当向 ADMIN 或 TASK 函数指定 size 参数时,可以使用下面的单位说明:
| 符号 | 对应的单位 |
|---|---|
| B | Bytes(= 2 的 0 次方) |
| KB | Kilobytes(= 2 的 10 次方) |
| MB | Megabytes(= 2 的 20 次方) |
| GB | Gigabytes(= 2 的 30 次方) |
| TB | Terabytes(= 2 的 40 次方) |
| PB | Petabytes(= 2 的 50 次方) |
命令 oncheck -ce 等效于以下 SQL 语句:
EXECUTE FUNCTION task('check extents'); |
函数 admin() 也可以实现相同的结果:
EXECUTE FUNCTION admin('check extents'); |
命令 onspaces -c -d dbspace2 -p /informix/chunks/dbs2.00 -o 0 -s 20000 等价于以下 SQL 语句:
EXECUTE FUNCTION task('create dbspace','dbspace2','/informix/chunks/dbs2.00','20MB');
(expression) Space 'dbspace2' added. |
(注:当使用函数 task() 时,返回值为描述状态的字符串)。
也可以使用函数 admin() 实现相同结果:
EXECUTE FUNCTION admin('create dbspace','dbspace2','/informix/chunks/dbs2.00','20MB');
(expression) 114 |
(注:返回值为 114,可在 command_history 表中找到)。
SELECT * FROM command_history WHERE cmd_number = 114
cmd_number 114
cmd_exec_time 2007-05-10 20:13:22
cmd_user informix
cmd_hostname gavea.usfl.ibm.com
cmd_executed create dbspace
cmd_ret_status 0
cmd_ret_msg Space 'dbspace2' added.
1 row(s) retrieved. |