在 DB2 SQL 存储过程中使用 XML
2009-11-23 00:00:00 来源:WEB开发网演示将 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
- ››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表' (数...
更多精彩
赞助商链接