WEB开发网
开发学院数据库DB2 DB2 XML 编程,第 2 部分: 在应用程序体系结构中使... 阅读

DB2 XML 编程,第 2 部分: 在应用程序体系结构中使用 XML 数据库支持

 2009-11-11 00:00:00 来源:WEB开发网   
核心提示: selectCUSTXMLfromCUSTOMER_TABLEwherexmlexists('$cust/Customer[@lastname="singh"]'passingCUSTXMLAS"cust")还可以在 Java 程序中通过参

select CUSTXML from CUSTOMER_TABLE 
where xmlexists ('$cust/Customer[@lastname= "singh" ]' passing CUSTXML AS "cust" ) 

还可以在 Java 程序中通过参数化查询执行这个调用:

select CUSTXML from CUSTOMER_TABLE 
where xmlexists ('$cust/Customer[@lastname= $lname ]' 
passing CUSTXML AS "cust" , cast(? as VARCHAR(12)) as "lname") 

掌握了向 SQL/XML 函数传递参数的语法之后,您会发现,在针对关系数据和 XML 数据的基本混合型查询中,XML 查询通常包含 XPath 表达式。这与在应用程序层中操作 XML 数据模型的方法非常相似(见第 1 部分),在那里许多代码通过对 Document Object Model(DOM)包装器进行 XPath 调用来查询和操作 XML 数据。

注意:在 Viper 2 中,对传递给一些 SQL/XML 函数的参数做了简化。例如,在前面的查询中,XMLExists 的 passing 子句不需要指定 CUSTXML 列。

select CUSTXML from CUSTOMER_TABLE 
where xmlexists ('$CUSTXML/Customer[@lastname= $lname ]' 
passing cast(? as VARCHAR(12)) as "lname") 

将应用程序逻辑放在数据库中

XQuery 提供了大多数高级语言的所有基本功能(if-then-else、for、变量、函数和算术操作符)。因此,可以将业务逻辑嵌入查询中。另外,它还提供许多常用的 XSLT 映射,所以它不但能够执行查询,还能够在数据库中转换 XML 输出。

我们仍然以第 1 部分中 Customer 示例的 XML 数据模型为例。

<Customer customerid ="" firstname="" lastname="" > 
<Items><Item ID="" description="" purchaseDate="" price="" /></Items> 
</Customer> 

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

Tags:DB XML 编程

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