WEB开发网
开发学院数据库DB2 在 DB2 SQL 存储过程中使用 XML 阅读

在 DB2 SQL 存储过程中使用 XML

 2009-11-23 00:00:00 来源:WEB开发网   
核心提示: 类型转换错误如果目标数据类型与实际数据不兼容,XMLCAST 函数会引发错误,在 DB2 SQL 存储过程中使用 XML(8),例如,不能将字符串 “HX25” 转换为整数,存储过程可以捕获类型转换错误,如清单 13 到清单 15 所示: 清单 13. 类型转换错误 &m

类型转换错误

如果目标数据类型与实际数据不兼容,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 的代码示例

上一页  3 4 5 6 7 8 9 10  下一页

Tags:DB SQL 存储

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接