在 DB2 SQL 存储过程中使用 XML
2009-11-23 00:00:00 来源:WEB开发网CALL ex_proc(XMLPARSE(DOCUMENT '<customer><custid>HX25</custid></customer>'));
声明参数
新的 XML 数据类型可以作为参数传递进存储过程中,可以采用任何模式(输入、输出或者同时作为输入/输出)。在声明数据类型为 XML 时,不指定长度。与将 XML 数据作为 CLOB 或 VARCHAR 处理(这需要指定最大长度)相比,这是一项不错的改进。
清单 6. 声明参数
CREATE PROCEDURE process_cust
(
IN inpdoc XML,
OUT outdoc XML,
INOUT doc3 XML
)
LANGUAGE SQL
NO EXTERNAL ACTION
BEGIN
...
END
声明变量
变量可以声明为 XML 类型。与参数的情况一样,不指定长度。
清单 7. 声明变量
CREATE PROCEDURE ex_proc
LANGUAGE SQL
NO EXTERNAL ACTION
BEGIN
DECLARE v_xml XML;
...
END
变量赋值
除了从游标获得数据之外,可以使用三种不同的技术将来自单行查询的值装载进变量中:
SET 语句
SELECT INTO
VALUES INTO
这三种技术都可以使用 SQL/XML 函数,尤其是 XMLQUERY。本节中后面的示例分别演示这些技术。
下面的所有示例都使用同样的输入/输出参数列表、同样的输入数据和同样的 SQL/XML 函数,并产生同样的结果。将三个参数传递给存储过程。第一个参数是一个输入 XML 文档。第二个参数是一个输出 VARCHAR。第三个参数是一个输出 XML 文档。
这些示例:
演示如何使用 XMLCAST,在将 XML 数据提取为标准关系数据类型(例如,CHAR 或 INT)时常常使用这种方法。
更多精彩
赞助商链接