DB2 9.5 SQL Procedure Developer 认证考试 735 准备,第5部分
2010-02-18 15:01:11 来源:WEB开发网下面的示例演示此过程的使用方法:
清单 8. ADMIN_CMD过程的使用示例
CREATE PROCEDURE test_admin_cmd ( )
P1: BEGIN
DECLARE sql_string VARCHAR(200);
SET sql_string ='LOAD FROM C:DB9.5_testorg_exp.txt OF DEL
METHOD P (1, 2, 3, 4, 5) INSERT INTO DB2ADMIN.ORG1
(DEPTNUMB, DEPTNAME, MANAGER, DIVISION, LOCATION)
COPY NO INDEXING MODE AUTOSELECT';
CALL SYSPROC.ADMIN_CMD(sql_string);
END P1
GET DIAGNOSTIC 语句
SQL PL 提供一个 GET DIAGNOSTICS 语句,用于获取前面执行的SQL 语句的相关信息。例如,如果需要查明一个 INSERT、DELETE或UPDATE 语句影响的行数,就可以使用带 ROW_COUNT 选项的GET DIAGNOSTICS 语句提供此信息。
清单 9 是GET DIAGNOSTICS 语句的语法图:
清单 9. GET DIAGNOSTICS 语句的语法
>>-GET DIAGNOSTICS---------------------------------------------->
>--+-SQL-variable-name--=--+-ROW_COUNT---------+-+-------------><
| '-DB2_RETURN_STATUS-' |
'-| condition-information |
-------------------'
condition-information
|--EXCEPTION--1------------------------------------------------->
.-,------------------------------------------.
V |
>----SQL-variable-name--=--+-MESSAGE_TEXT-----+-+---------------|
'-DB2_TOKEN_STRING-'
可以使用GET DIAGNOSTICS 语句获取以下信息:
前面执行的SQL 语句处理的行数
与前一个 CALL 语句相关联的过程返回的状态值
前面执行的SQL 语句返回的DB2 错误或警告消息文本
SQL-variable 声明取决于希望获得的信息。如果要存储 ROW_COUNT或DB2_RETURN_STATUS,就需??把它声明为 INTEGER;如果要存储错误或警告消息,就应该声明为 varchar(70)。
请注意,GET DIAGNOSTICS 语句不会改变特殊变量 SQLSTATE 和 SQLCODE 的内容。
下面的示例演示 GET DIAGNOSTICS 语句的使用方法:
清单 10. 通过 Get DIAGNOSTICS 语句获取 ROW_COUNT
CREATE PROCEDURE UPDATE_RCOUNT(sales_corr INT, qtr int, OUT row_updated INT)
P1: BEGIN
UPDATE SALESBYQUARTER
SET sales = sales+sales_corr
WHERE y < year(current date)
and q = qtr;
GET DIAGNOSTICS row_updated = ROW_COUNT;
END P1
清单 11. 通过 GET DIAGNOSTICS 语句获取消息文本
CREATE PROCEDURE mess_text1 (num int, new_status varchar(10),
OUT p_err_mess varchar(70))
P1: BEGIN
DECLARE SQLCODE INTEGER default 0;
DECLARE SQLSTATE CHAR(5) default '';
DECLARE v_trunc int default 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
GET DIAGNOSTICS EXCEPTION 1 p_err_mess = MESSAGE_TEXT;
SET v_trunc = 2;
END;
INSERT INTO tab1 VALUES (num, new_status);
RETURN v_trunc;
END P1
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接