在 DB2 SQL 存储过程中使用 XML
2009-11-23 00:00:00 来源:WEB开发网类型转换错误
如果目标数据类型与实际数据不兼容,XMLCAST 函数会引发错误。例如,不能将字符串 “HX25” 转换为整数。存储过程可以捕获类型转换错误,如清单 13 到清单 15 所示:
清单 13. 类型转换错误 —— 输入参数 “inpdoc” 的示例数据
<customer>
<custid>HX25</custid>
</customer>
清单 14. 类型转换错误
CREATE PROCEDURE ex_proc ( IN inpdoc XML )
LANGUAGE SQL
NO EXTERNAL ACTION
BEGIN
DECLARE v_int INTEGER;
DECLARE v_badnum CHAR(1) DEFAULT 'N';
DECLARE CONTINUE HANDLER FOR SQLSTATE '10608'
SET v_badnum = 'Y';
SET v_int =
XMLCAST
(
XMLQUERY('$d/customer/custid' PASSING inpdoc AS "d")
AS INT
);
IF (v_badnum = 'Y') THEN
SIGNAL SQLSTATE '75002' SET MESSAGE_TEXT = 'Bad number';
END IF;
END
清单 15. 类型转换错误 —— 输出
SQL0438N Application raised error with diagnostic text: "Bad number".
SQLSTATE=75002
IF/THEN/ELSE 语句和 XMLEXISTS
可以使用 XMLEXISTS 在 IF/THEN/ELSE 语句中测试 XML 类型的变量。
清单 16. 涉及 IF/THEN/ELSE 的代码示例
- ››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表' (数...
更多精彩
赞助商链接