oracle+xquery函数,xquery

oracle+xquery函数,xquery在 OracleXMLDB 中使用 XQuery 目的本教程描述了如何在 OracleXMLDB 中使用 XQuery 所需时间大约 1 小时 主题本教程包括下列主题 查看屏幕截图单击此图标可以加载和查看本教程的所有屏幕截图 警告 此操作会同时加载所有屏幕截图 网速较慢时 响应时间可能会比较长 注意 您还可以在下面的步骤中将光标放在每个单独的图标上 仅加载和查看与该步骤相关的屏幕截图

在 Oracle XML DB 中使用 XQuery

目的

本教程描述了如何在 Oracle XML DB 中使用 XQuery。

所需时间

大约 1 小时。

主题

本教程包括下列主题:

查看屏幕截图

448875_12.gif 单击此图标可以加载和查看本教程的所有屏幕截图。(警告:此操作会同时加载所有屏幕截图,网速较慢时,响应时间可能会比较长。)

注意:您还可以在下面的步骤中将光标放在每个单独的图标上,仅加载和查看与该步骤相关的屏幕截图。

概述

什么是 XQuery?

XML Query (XQuery) 是由 World Wide Web 联合会致力推出的标准,它使您能够从 XML 文档提取数据。XML Query 是专门为使用 XML 数据模型而设计的,并且成为以 XML 语言表达的数据的综合性查询语言,正如 SQL 曾经是世界上很多以关系表表达的结构化数据查询语言,以及像关键字搜索曾经增强 Internet 中的大量信息访问功能一样。

Oracle 数据库自带的 XQuery

由于 XQuery 基本完成,IT 社区已经开始调查 XML 的业务使用,并确定 XQuery 所能提供的价值。作为商业数据库技术的创新领导者,Oracle 数据库 10g 第 2 版提供了完善的自带 XQuery 引擎,该引擎与传统的 Oracle 数据库服务器进行集成,以帮助各种组织探索其 XQuery 需求。

在 SQL 方面,SQL 2003 引入了 XML 数据类型,以作为在 SQL 中封装 XML 的方法。SQL 委员会正致力于通过 XQuery 集成 XML 查询。通过引入新的 SQL 函数,即将完成这项工作:XMLQuery 和新的结构:XMLTable 这两者均使用 XQuery 操作 XML 和 SQL 值。由于前者允许使用 XQuery 查询和构建 XML,因此前者称为以 XQuery 为中心的方法。由于后者允许将 XQuery 值细分为关系值,因此后者称为以 SQL 为中心的方法。

Oracle 数据库 10g 第 2 版通过这些 SQL 标准函数在数据库服务器中实现了 XQuery 支持。还在 SQL*Plus 中实现了新的 XQUERY 命令,以允许用户在命令行中输入 XQuery 表达式。通过 Oracle 数据库 10g 第 2 版中 XQuery 基于标准的实现,应用程序开发人员可以使用喜好的 API (例如 JDBC、ODP.NET)来利用 Oracle 数据库 XQuery 功能。

Oracle XQuery 的好处

通过 SQL/XML XQuery 函数和 XML 文档的结构化存储,XML DB 可以使用超过基于 DOM 的 XML 查询功能评估几个数量级的性能来处理 XML 查询。此外,XML 查询可以无缝地与 SQL 关系查询进行合并,来处理所有查询情况。最后,Oracle XML DB 的 XML 查询功能建立在业界最好的关系型数据库基础之上,具有高度的可靠性、可用性、可伸缩性和安全性。简言之,Oracle 数据库 10g 第 2 版中的 XML DB 查询功能为通用、可伸缩、并发以及高性能的 XML 应用程序提供了最全面、最高效的功能。

在企业管理器中查看 XML 模式

在 Oracle 数据库 10g 随附的示例架构中,已经提供了一个 XML 模式(作为 OE 模式的一部分)。在本部分中,您将使用企业管理器查看其内容。执行以下步骤:

1.

打开浏览器,输入以下 URL:

http://raclinux1.us.oracle.com:1158/em/

输入 system/oracle,然后单击 Login。

448875_12.gif

2.

单击 Administration 选项卡。

448875_12.gif

3.

向下滚动。

448875_12.gif

4.

选择 XML Database 下的 Configuration 链接。

448875_12.gif

5.

输入 2100 作为 FTP 端口,输入 8080 作为 HTTP 端口。然后单击 OK。

448875_12.gif

6.

现在已经完成了配置设置。单击 Cluster Database 路径式导航栏。

448875_12.gif

7.

在 XML Database 下的 Administration 选项卡中,选择 Resources 链接。

448875_12.gif

8.

单击 Go 查看所有资源。

448875_12.gif

9.

这将显示所有资源。展开 home。

448875_12.gif

10.

展开 OE – PurchaseOrders – 2002 – Apr 以显示 XML 文档列表。单击列表中的第一个 XML 文档。

448875_12.gif

11.

这将显示该文档的一般信息。要查看该文档的实际内容,单击 Display Contents。

448875_12.gif

12.

这将显示文件内容。单击 Show formatted XML Content。

448875_12.gif

13.

查看格式化的 XML 文档。完成后,将关闭窗口。

448875_12.gif

14.

单击 Database 路径式导航栏。

448875_12.gif

15.

在 XML Database 下的 Administration 选项卡中,单击 XMLType Tables。

448875_12.gif

16.

单击 Go。

448875_12.gif

17.

单击表名 PURCHASEORDER。

448875_12.gif

18.

这将显示 XSD 的定义。向下滚动查看详细信息。

448875_12.gif

在 JDeveloper 中查看 XML 模式

要在 JDeveloper 中查看 XML 模式,您需要执行以下任务:

创建 WebDAV 连接

在访问 XML DB 中的 XML 模式文档之前,您需要创建 WebDAV 连接。执行以下步骤:

1.

双击桌面上的 JDeveloper 10.1.2 图标。

2.

单击 Connection 选项卡。在 Navigator 窗口中右键单击 WebDAV Connection,然后选择 New WebDAV Connection…

448875_12.gif

3.

在 Welcome 窗口中,单击 Next。

448875_12.gif

4.

在 Name 域中输入 WebDAVConnection1,在 URL 域中输入 http://raclinux1.us.oracle.com:8080/,然后单击 Authentication Required。然后单击 Next。

448875_12.gif

5.

输入 OE 作为用户名和密码。然后单击 Next。

448875_12.gif

6.

单击 Test Connection。

448875_12.gif

7.

测试成功。单击 Next。

448875_12.gif

8.

单击 Finish。

448875_12.gif

9.

展开刚才创建的 WebDAVConnection1 连接。

448875_12.gif

查看 XML 模式

现在,您可以查看 XML 模式。执行以下步骤:

1.

展开home – OE – PurchaseOrders – 2002 – Apr。右键单击列表中的第一个文档,然后选择 Open。这将显示 XML 文档。

448875_12.gif

2.

在 Navigator 窗口中向下滚动,然后右键单击 purchaseOrder.xsd。然后选择 Open。

448875_12.gif

3.

这将在图形布局中显示 XML 模式。展开 PurchaseOrder 类型。

448875_12.gif

4.

展开 Actions 类型。

448875_12.gif

5.

展开 Action,您将看到两个类型对象:User 和 Date。现在,您将返回 XML 文档以查看它们的定义位置。单击XML Document选项卡。

448875_12.gif

6.

Action 对象包含一个 KPARTNER 用户类型。

448875_12.gif

运行 XQuery 表达式以访问 XML 文档

在本部分中,您将运行一些 XQuery 表达式及其关联的解释计划来访问有关 XML 文档的信息。执行以下步骤:

1.

打开一个终端窗口,然后输入以下命令:

cd wkdir

sqlplus oe/oe

2.

您将运行的第一个 xquery 将选择所有 XML 文档。执行以下脚本:

@XQuery01

448875_12.gif

3.

您将运行的第二个 xquery 将选择特定用户的 XML 文档。执行以下脚本:

@XQuery02

448875_12.gif

448875_12.gif

4.

您将运行的下一个 xquery 将查看特定的订货单。执行以下脚本:

@XQuery03

448875_12.gif

448875_12.gif

448875_12.gif

5.

您将运行的下一个 xquery 将列出包含特定部件 ID 的所有订货单。执行以下脚本:

@XQuery04

448875_12.gif

448875_12.gif

6.

您将运行的下一个 xquery 将列出包含特定部件 ID 的所有订货单。执行以下脚本:

@XQuery05

448875_12.gif

448875_12.gif

7.

您将运行的下一个 xquery 将列出特定订货单中每行项目的描述。执行以下脚本:

@XQuery06

448875_12.gif

448875_12.gif

通过创建索引增强 XQuery 表达式的性能

您可以通过创建索引来增强 XQuery 的性能。在本部分中,您将创建一个索引,然后运行相同的 XQueries 来查看改变性能的解释计划如何获得增强。执行以下步骤:

1.

从 SQLPlus 会话中,登录 OE 用户。

@createXMLIndexes

448875_12.gif

2.

您将运行的下一个 xquery 将查看特定的订货单。执行以下脚本:

@XQuery03

448875_12.gif

448875_12.gif

448875_12.gif

3.

您将运行的下一个 xquery 将列出包含特定部件 ID 的所有订货单。执行以下脚本:

@XQuery04

448875_12.gif

448875_12.gif

4.

您将运行的下一个 xquery 将列出包含特定部件 ID 的所有订货单。执行以下脚本:

@XQuery05

448875_12.gif

448875_12.gif

5.

您将运行的下一个 xquery 将列出特定订货单中每行项目的描述。执行以下脚本:

@XQuery06

448875_12.gif

448875_12.gif

通过 XQuery 使用视图

您可以使用 XQuery 通过视图从 SQL 数据生成 XMl。执行以下步骤:

1.

首先通过 XMLTable() SQL/XML 函数和 XQuery 表达式来根据关系表创建 XML 视图。执行以下脚本:

@createXQueryView

448875_12.gif

2.

现在,可以根据刚刚创建的 XML 视图来显示 XQuery。执行以下脚本:

@xqueryXQLView

448875_12.gif

448875_12.gif

使用虚拟 XML 文档

虚拟 XML 文档可指导您如何将 XMLType 视图中行的内容作为 Oracle XML DB 信息库中的文档来提供。执行下列任务:

创建触发器

1.

首先需要创建一个要从前面创建的 XML 视图创建一个虚拟 XML 文档的触发器。执行以下脚本:

@folderXQDepartments

448875_12.gif

在 JDeveloper 中查看虚拟 XML 文档

1.

切换到 JDeveloper。从 Navigator 窗口中,右键单击 WebDAV 连接中的/home/OE,然后选择 Refresh。

448875_12.gif

2.

展开 XQDepartments。

448875_12.gif

注意:如果在此步骤中遇到一个错误,则试着再次执行第 1 步,然后再次展开 XQDepartments。

3.

选择列表中的第一个 .xml 文档。该 Accounting.xml 文档直接在 XMLType 视图的行中显示 XML 数据。

448875_12.gif

在 SQL*Plus 中查看虚拟 XML 文档

1.

您还可以查询虚拟 XML 文档。请注意如何使用 XQuery 标准 doc() 函数来检索 XML DB 信息库中的 XML 文档。首先,您将查看具有 Accounting 显示名的虚拟文档列表。执行以下脚本:

@departmentsXQueries01

448875_12.gif

2.

现在,可以显示其中一个虚拟 XML 文档的内容。执行以下脚本:

@departmentsXQueries02

448875_12.gif

3.

最后,您可以执行 XQuery 来选择虚拟 XML 文档的其中一项。执行以下脚本:

@departmentsXQueries03

448875_12.gif

在资源视图中使用 XQuery 从 XML 信息库检索信息

通过 RESOURCE_VIEW和 PATH_VIEW 公开 XML DB 信息库的内容。 Public synonyms make these views available to all database users.可以像使用任何其他数据库视图那样来使用这些视图。执行以下步骤:

1.

执行以下脚本:

@resourceViewXQuery01

448875_12.gif

使用 XQuery 转换 XML 文档

XQuery 是通用的查询语言。它可用于将 XML 文档从一种结构转换为另一种结构。执行以下步骤:

1.

标记和其他 XQuery 表达式已经对订货单进行转换,以生成明显不同的 XML 文档报告。执行以下脚本:

@XQueryTransform

448875_12.gif

使用 JDBC 通过 XQuery 查询 Oracle XML DB

JDBC 通过以下 SQL/XML 函数的本地实现来支持 XQuery 语言:XMLQuery 和 XMLTable。以下示例演示了如何使用 XMLTable() 函数的 PASSING 语句将动态变量绑定到 XQuery 表达式。执行下列任务:

添加应用程序

1.

切换到 JDeveloper。单击 Navigator 的 Applications 选项卡,然后单击 Add to Applications 图标。

448875_12.gif

2.

从 /JDBC 目录中选择 XQuerySamples.jws。然后单击 Open。

448875_12.gif

更改 JDBC 连接信息

1.

展开 XQuerySamples > SimpleXQuery > Application Sources,然后右键单击 SimpleXQuery.java,并单击 Open。

448875_12.gif

2.

稍微向下滚动到 OracleConnection 语句,然后更改主机名和 SID 信息。

448875_12.gif

3.

更改 XQueryBind 下所有 .java 文件的 JDBC 连接信息。

添加类路径

1.

您需要设置类路径。选择 Tools > Default Project Properties。

448875_12.gif

2.

选择 Libraries,然后单击 New…。

448875_12.gif

3.

输入 Oracle Database 10gR2 作为库名称,然后为类路径单击 Edit。

448875_12.gif

4.

单击 Add Entry…。

448875_12.gif

5.

导航到 $ORACLE_HOME/jdbc/lib/ojdbc14.jar 文件,然后单击 Select。

448875_12.gif

6.

单击 Add Entry…。

448875_12.gif

7.

导航到 $ORACLE_HOME/rdbms/jlib/xdb.jar 文件,然后单击 Select。

448875_12.gif

8.

单击 Add Entry…。

448875_12.gif

9.

导航到 $ORACLE_HOME/lib/xmlparserv2.jar 文件,然后单击 Select。

448875_12.gif

10.

单击 OK。

448875_12.gif

11.

单击 OK 保存新的库。

448875_12.gif

12.

单击 OK 关闭 Project Properties 窗口。

448875_12.gif

13.

现在,您需要将该库添加到项目中。右键单击 SimpleXQuery,然后选择 Project Properties。

448875_12.gif

14.

从库列表中选择 Oracle Database 10gR2,然后单击 > 进行选择。然后单击 OK。

448875_12.gif

15.

右键单击 XQueryBind,然后选择 Project Properties。

448875_12.gif

16.

从库列表中选择 Oracle Database 10gR2,然后单击 > 进行选择。然后单击 OK。

448875_12.gif

构建应用程序

1.

右键单击 XQuerySamples,然后选择 Make。

448875_12.gif

2.

查看 Message 窗口,确保未收到错误消息。

448875_12.gif

运行应用程序

1.

右键单击 SimpleXQuery,然后选择 Run。

448875_12.gif

2.

输出将显示在 Log 区域。

448875_12.gif

3.

右键单击 XQueryBind,然后选择 Run。

448875_12.gif

4.

输出将显示在 Log 区域。

448875_12.gif

总结

在本课程中,您学习了如何:

448875_1.gif

使用 XQuery 查询 Oracle XML DB 中存储的 XML 文档

448875_1.gif

添加 XML 索引,并演示在执行 XQuery 时解释计划如何变化

448875_1.gif

使用 XQuery 创建 XML 视图,以及使用 XQuery 查询 XML 视图

448875_1.gif

从 XML 视图创建虚拟 XML 文档,以及使用 XQuery 查询这些 XML 文档

448875_1.gif

在资源视图中使用 XQuery 从 XML 信息库检索信息

448875_1.gif

使用 XQuery 转换 XML 文档

448875_1.gif

使用 XQuery 通过 JDBC 查询 Oracle XML DB

448875_12.gif 将光标置于该图标上可以隐藏所有的屏幕截图。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208757.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午10:50
下一篇 2026年3月19日 上午10:50


相关推荐

  • Python代码,能玩30多款童年游戏!这些有几个是你玩过的

    Python代码,能玩30多款童年游戏!这些有几个是你玩过的大游戏小游戏有千千万万 这些小游戏应该只有 90 后才玩过和懂吧儿童节即将到来 虽然秃头程序员没有头发 但是童心还是一直都在的 今天就分享一些私藏的童年游戏 十几行代码就能进入使用 Python 开发的小游戏快乐玩耍 使用工具 Python3 8 pycharm2020 也可以不安装 pycharm2020 也可以直接运行 但是安装了些会好一点 1 五子棋源码 游戏开始界面 classgameSta QWidget def init se

    2026年3月19日
    3
  • debian8升级debian10_debian sources.list

    debian8升级debian10_debian sources.list一、编辑/etc/apt/source.list文件对于之前的squeeze用户,升级还是很简单的.国内的用户直接去换一个源就行了在终端依次输入以下命令,备份老源文件,直接去163下载新源文件即可.#cp/etc/apt/sources.list/etc/apt/squeeze_sources_list#wgethttp://mirrors.163.com/.help/s

    2022年10月10日
    4
  • hbase列表排序

    hbase列表排序

    2021年12月17日
    180
  • 睿智的目标检测20——利用mAP计算目标检测精确度「建议收藏」

    睿智的目标检测20——利用mAP计算目标检测精确度「建议收藏」睿智的目标检测20——利用mAP计算目标检测精确度学习前言GITHUB代码下载知识储备1、IOU的概念2、TPTNFPFN的概念3、precision(精确度)和recall(召回率)4、概念举例5、单个指标的局限性什么是AP绘制mAP学习前言好多人都想算一下目标检测的精确度,mAP的概念虽然不好理解,但是理解了就很懂。GITHUB代码下载这个是用来绘制mAP曲线的。https:…

    2022年10月13日
    4
  • 实用的谋生技能_unity给人物模型加动作

    实用的谋生技能_unity给人物模型加动作Unity小科普老规矩,先介绍一下Unity的科普小知识:Unity是实时3D互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。Unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。也可以简单把Unity理解为一个游戏引擎,可以用来专业制作游戏!…

    2025年11月5日
    4
  • linux 重启ftp的命令,linux开启ftp命令

    linux 重启ftp的命令,linux开启ftp命令ftp 服务器在网上较为常见 Linuxftp 命令的功能是用命令的方式来控制在本地机和远程机之间传送文件下面由学习啦小编为大家整理了 linux 下开启 ftp 命令的相关知识 希望对大家有所帮助 linux 下启动 FTP 命令的方式一般 linux 都有 vsftpd 吧 启动命令是 servicevsftp 你要限制匿名登录的话 修改它的配置文件 etc vsftpd vsftpd conf 把 an

    2026年3月17日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号