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

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

 2006-12-30 12:01:50 来源:WEB开发网   
核心提示: XQuery 的一般结构由缩略语 FLOWR(发音为“flower”)来描述,它代表 FOR、LET、ORDER BY、WHERE 和 RETURN,Oracle 10g第2版新特性之SQL和PL/SQL(4),在以上的示例中,我们看到第 2 行定义了数据的来源,用

XQuery 的一般结构由缩略语 FLOWR(发音为“flower”)来描述,它代表 FOR、LET、ORDER BY、WHERE 和 RETURN。在以上的示例中,我们看到第 2 行定义了数据的来源,即从 1 到 9 的一系列数字。它可以是任何来源 — 一组标量值或者 XML 数据的一个元素,由 FOR 子句指定。该行还指定一个变量来存取这些值 (var1)。在第 3 行中,另一个变量 var2 拥有的值是 var1 加 1,由 LET 子句指定。

对于所有这些返回值,我们只关心 6 以下的值,这是由子句 WHERE 指定的。然后我们根据 var2 的值以降序方式对结果集排序,如第 6 行中的 ORDER BY 子句所示。最后,利用 RETURN 子句将值返回给用户。

如果将该语法与常规 SQL 语法相比较,则 RETURN、FOR、WHERE 和 ORDER BY 类似于 SELECT、FROM、WHERE 和 ORDER BY。LET 子句没有对应的 SQL 语句,但它可以在其他子句中指定。

让我们来看这种功能强大的新工具的一个实际应用示例。首先,创建一个表,用于保存与一个帐户持有者间的详细通信信息。

create table acc_comm_log
(
acc_no number,
comm_details xmltype
);

现在,向其中插入一些记录。

insert into acc_comm_log
values
(
1,
xmltype(
'<CommRecord>
<CommType>EMAIL</CommType>
<CommDate>3/11/2005</CommDate>
<CommText>Dear Mr Smith</CommText>
</CommRecord>')
)
/
insert into acc_comm_log
values
(
2,
xmltype(
'<CommRecord>
<CommType>LETTER</CommType>
<CommDate>3/12/2005</CommDate>
<CommText>Dear Mr Jackson</CommText>
</CommRecord>')
);
insert into acc_comm_log
values
(
3,
xmltype(
'<CommRecord>
<CommType>PHONE</CommType>
<CommDate>3/10/2005</CommDate>
<CommText>Dear Ms Potter</CommText>
</CommRecord>')
);

现在您可以看到表中的记录:

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

Tags:Oracle 特性 SQL

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