用DB2 pureXML执行不区分大小写的高效搜索
2009-03-04 16:38:23 来源:WEB开发网UCA500R1_LEN_S2 导致 "cliche" = "Cliche" < "cliché"
UCA500R1_LEN_S3 导致 "cliche" < "Cliche" < "cliché"
在 DB2 Information Center 中可以找到可以作为 UCA 排序规则名的所有组合(参见 参考资料)。
在不区分大小写的数据库中查询 XML 数据
因为此数据库使用排序规则名 UCA500R1 和强度级别 2,所以现在可以简化前面的查询,去掉 fn:upper-case() 函数(清单 5),就像所有数据都是大写的一样。无论搜索字符串是 “Paris” 或 “PARIS” 还是其他任何大小写组合,结果都是相同的。
清单 5. 选择 Paris 的客户
SELECT id, XMLCAST( XMLQUERY('$XMLDOC/Customer/city') AS VARCHAR(15)) AS city
FROM customer
WHERE XMLEXISTS('$XMLDOC/Customer[city = "PARIS"]');
图 2. 示例查询的结果
如果通过添加 ORDER BY 子句按提取的 city 值排序,那么结果集仍然是相同的:PARIS、paris 和 Paris 被当作相同的值。
为了高效地查询此数据,尤其是在表中行数很大的情况下,应该用 XPath /Customer/city 创建一个 XML 索引,见 清单 6:
清单 6. 创建 XML 索引
CREATE INDEX customer_lang_idx ON test (xmldoc)
GENERATE KEY USING XMLPATTERN '/Customer/city' AS SQL VARCHAR(15);
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››执行存储过程ORA-01031: insufficient privileges...
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
更多精彩
赞助商链接