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

在 DB2 SQL 存储过程中使用 XML

 2009-11-23 00:00:00 来源:WEB开发网   
核心提示: 在游标中允许 SELECT 语法的任何地方,比如 SELECT INTO 和 VALUES变量赋值,在 DB2 SQL 存储过程中使用 XML(3),比如 SET 语句XML 列可以:在游标结果集中返回绑定(?表示法)到 SELECT 和 UID 语句中IF/THEN/ELSE 语句可以测试 X

在游标中

允许 SELECT 语法的任何地方,比如 SELECT INTO 和 VALUES

变量赋值,比如 SET 语句

XML 列可以:

在游标结果集中返回

绑定(?表示法)到 SELECT 和 UID 语句中

IF/THEN/ELSE 语句可以测试 XMLEXISTS 谓词

可以从以下语句装载 XML 类型的变量:

SELECT INTO 语句

VALUES INTO 语句

FETCH INTO 语句

EXECUTE INTO 语句

SET 语句

限制和解决方法

SQL 存储过程中的 XML 功能有一些限制:

XQuery 查询只能作为动态游标的一部分运行。

XML 变量在 COMMIT 或 ROLLBACK 之后不可用。

动态游标中的 XQuery

XQuery 命令可以出现在两种不同的上下文中:

放在单引号中,作为 SQL/XML 函数 XMLQUERY、XMLEXISTS 和 XMLTABLE 的参数

SQL/XML 函数中嵌入的 XQuery 允许静态 SQL 语句。在下面的示例中,变量 adrs 是一个 XML 列或 XML 类型的变量。


清单 1. SQL/XML 函数中嵌入的 XQuery

XMLQUERY('$d/cust/name' PASSING adrs AS "d") 
注意: 这个示例只包含一个非常简单的 XPath 表达式,但是 SQL/XML 函数(XMLQUERY、XMLEXISTS、XMLTABLE)可以包含任何有效的 XQuery,包括复杂的 FLWOR 表达式。

作为查询

XQuery 查询只能在动态游标中定义。以下代码在 SQL 存储过程中是不允许的:

清单 2. 在 SQL 存储过程中不允许静态 XQUERY

XQUERY 
for $dept in db2-fn:xmlcolumn("DEPT.DEPTDOC")/dept 
where $dept/@deptID="PR27" 
return $dept/employee/name 

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

Tags:DB SQL 存储

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