WEB开发网
开发学院数据库DB2 用DB2 pureXML执行不区分大小写的高效搜索 阅读

用DB2 pureXML执行不区分大小写的高效搜索

 2009-03-04 16:38:23 来源:WEB开发网   
核心提示: 如果一个应用程序查询这些 XML 文档,寻找某一城市的客户,用DB2 pureXML执行不区分大小写的高效搜索(2),那么很可能需要不区分大小写的搜索,例如,见 清单 3,这个参数标志(“?”)的类型为 VARCHAR(15) 并作为变量 “c&rdqu

如果一个应用程序查询这些 XML 文档,寻找某一城市的客户,那么很可能需要不区分大小写的搜索。例如,可能希望找到 Paris 的所有客户,也就是希望获取第 1、4、5 和 7 行。但是,如果搜索值 “Paris”,那么只会返回第 7 行。要想获取所需的所有四行,可以使用 XQuery 函数 fn:upper-case() 把 city 元素值转换为大写并与 “PARIS” 做比较。清单 2 中的查询就采用这种方式,它会返回 Paris 的所有四个客户。

清单 2. 选择 Paris 的客户

SELECT id, XMLCAST( XMLQUERY('$XMLDOC/Customer/city') AS VARCHAR(15)) AS city
FROM customer
WHERE XMLEXISTS('$XMLDOC/Customer[fn:upper-case(city) = "PARIS"]'); 

如果查询通过一个参数标志提供搜索值,那么这个参数也应该转换为大写,见 清单 3。这个参数标志(“?”)的类型为 VARCHAR(15) 并作为变量 “c” 传递给 XQuery 谓词。

清单 3. 使用参数标志选择客户

SELECT id, XMLCAST( XMLQUERY('$XMLDOC/Customer/city') AS VARCHAR(15)) AS city
FROM customer
WHERE XMLEXISTS('$XMLDOC/Customer[fn:upper-case(city) = fn:upper-case($c)]'
PASSING CAST(? AS VARCHAR(15)) AS "c"); 

图 1 显示以上示例查询的输出。

用DB2 pureXML执行不区分大小写的高效搜索

图 1. 示例查询的结果

上一页  1 2 3 4 5  下一页

Tags:DB pureXML 执行

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