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

在 DB2 SQL 存储过程中使用 XML

 2009-11-23 00:00:00 来源:WEB开发网   
核心提示: 演示将 XMLQUERY 的输出赋值给 XML 类型的变量,在 XMLQUERY 函数中,在 DB2 SQL 存储过程中使用 XML(6),“PASSING inpdoc” 引用变量,如果在 SELECT 语句中使用 XMLQUERY,在这里,p2 将输出转换为 VARC

演示将 XMLQUERY 的输出赋值给 XML 类型的变量。

在 XMLQUERY 函数中,“PASSING inpdoc” 引用变量。如果在 SELECT 语句中使用 XMLQUERY,那么 PASSING 子句可以引用表列或者存储过程变量。

在调用存储过程的输出中,可以看到提取 XML 元素与提取 XML 元素值之间的差异。

尽管这个示例只将值赋给输出参数,但是使用声明的变量也很容易。



清单 8. 三个变量赋值示例的输入参数 “inpdoc” 的示例数据

<customer> 
 <name>Jed Clampett</name> 
 <city>Beverly Hills</city> 
</customer> 




清单 9. 三个变量赋值示例的输出

Value of output parameters 
-------------------------- 
 
Parameter Name : P2 
Parameter Value : Jed Clampett 
 
Parameter Name : P3 
Parameter Value : <name>Jed Clampett</name> 
 
Return Status = 0 

变量赋值 / SET 语句

我们首先考虑如何将 XMLQuery 函数的输出返回给存储过程中声明的变量。在这里,p2 将输出转换为 VARCHAR 值,而 p3 以 XML 形式返回输出。
清单 10. 使用 SET 语句进行变量赋值

CREATE PROCEDURE ex_proc 
( 
 IN inpdoc XML, 
 OUT p2   VARCHAR(30), 
 OUT p3   XML 
) 
LANGUAGE SQL 
NO EXTERNAL ACTION 
BEGIN 
 
 SET p2 = 
    XMLCAST 
    ( 
     XMLQUERY('$d/customer/name' PASSING inpdoc AS "d") 
     AS VARCHAR(30) 
    ); 
 
 SET p3 = XMLQUERY('$d/customer/name'PASSING inpdoc AS "d"); 
 
END 

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

Tags:DB SQL 存储

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