WEB开发网
开发学院数据库Oracle Oracle 10g第2版新特性之SQL和PL/SQL 阅读

Oracle 10g第2版新特性之SQL和PL/SQL

 2006-12-30 12:01:50 来源:WEB开发网   
核心提示: SQL> l1 select acc_no,2 XMLQuery(3 'for $i in /CommRecord4 where $i/CommType != "EMAIL"5 order by $i/CommType6 return $i/CommDate&#
SQL> l
1 select acc_no,
2 XMLQuery(
3 'for $i in /CommRecord
4 where $i/CommType != "EMAIL"
5 order by $i/CommType
6 return $i/CommDate'
7 passing by value COMM_DETAILS
8 returning content) XDetails
9 from acc_comm_log
10 /
ACC_NO XDETAILS
---------- ------------------------------
1
2 <CommDate>3/12/2005</CommDate>
3 <CommDate>3/10/2005</CommDate>

XMLTable

另一个函数 XMLTable 用于类似的目的,但是它象常规的 SQL 查询一样返回列。以下是其运行情况。

1 select t.column_value
2 from acc_comm_log a,
3 xmltable (
4 'for $root in $date
5 where $root/CommRecord/CommType!="EMAIL"
6 return $root/CommRecord/CommDate/text()'
7 passing a.comm_details as "date"
8* ) t
SQL> /
COLUMN_VALUE
---------------------
3/12/2005
3/10/2005

此示例演示了如何将常规的 SQL 语句用于 XML 查询所返回的 XML 表。查询按照非常结构化的 FLOWR 模式来指定命令。

XQuery 与 XMLTable 的对比

既然您已经了解了在常规 SQL 查询中使用 XML 的两种方法,就让我们来看这二种方法适用的情形。

第一种方法 XQuery 允许您获取 XMLType 形式的数据,在任何支持它的程序或应用程序中都可以将其作为 XML 来处理。在您所看到的示例中,帐户数据的结果输出是 XML 格式,而您可以使用任何工具(不必是关系型工具)来处理和显示这些数据。第二种方法 XMLTable 结合了常规 SQL 和 XML 的功能。帐户数据的结果输出不是 XML 格式,而是关系型数据。

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

Tags:Oracle 特性 SQL

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