问题标签 [oracle-xml-db]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1241 浏览

oracle - 使用 XQUERY 节点函数将值提取到行中

我的问题与这个问题相同,我使用的是 Oracle 12.1 而不是 SQL Server。

我想从以下 xml 文档中提取所有名称元素:

我想要的输出是三个单独的行,例如:

使用以下查询

显示了名称,但输出都在一行上:

看起来我需要使用该NODE函数,但我不知道如何在 Oracle 上下文中使用它。

0 投票
2 回答
5314 浏览

oracle - 得到多项序列

我的意图是“选择容器编号等于输入数据的数据”(搜索功能的种类)。当我尝试检索数据时遇到问题,在 where 条件下出现问题:

在这里,我得到了多个数据。我不知道如何在 where 条件下迭代它。

我的查询是:

我的源 XML 是:

我如何选择所有 sealId 为 5678 的声明?在这种情况下如何处理 where 条件?

0 投票
1 回答
45 浏览

java - 无法使用标签数组编写复杂类型的 where 条件

我是 XML 数据库的新手,在为 transportEquipment 的 id 写入 where 条件时遇到问题。

我的xml是:

下面是从数据库中获取的 xml。这个xml在transportequipment中有多个id,我们需要在id上写where条件。我能够在 localreferencenumber 和标识符等上写 where 条件。但是没有写在transportEquipment的“id”上,bcz这里有很多。

并且我无法将 where 条件添加到以下查询

0 投票
1 回答
165 浏览

sql - 选择子选择解析结果oracle

临时提取物:

ACH_ADDENDA:

- 这需要仅对表 A(事务类型 1)的临时表中的值是本地的,但在 xml 上,它也显示在事务类型 2 的输出中。我将如何使用其中的 where 查询使该子选择成为本地?谢谢你的时间。

输出如下:

PMTRELINFO 适用于第一个事务,而不是第二个事务。

0 投票
1 回答
2079 浏览

sql - 提取值/xmlsequence

我有以下代码,它适用于它提取的较小数据,但是当它遇到更大尺寸的记录时,它会出错。我将如何解决 ORA-01706:user function result value is too large 错误?

感谢您的时间!

0 投票
1 回答
2023 浏览

xml - ORA-00937: not a single group function (XMLAGG)

I used the XMLAGG aggregate function in a single row and I keep getting the error code ORA-00937. Why?

The structure for the report is:

My select statement is:

0 投票
1 回答
999 浏览

oracle - 无法在 Oracle PL/SQL Web 服务中使用 XMLTYPE

我一直在尝试在 Oracle 11g (11.2.0.2.0) 中将我的 Oracle PL/SQL 包作为 Web 服务提供。虽然其他一切进展顺利,但我似乎在使用任何通过 Web 服务使用 XMLTYPE 的过程/函数时遇到了问题。虽然我会感到非常惊讶,但如果 Oracle Web 服务不支持 XMLTYPE,而且因为我还没有找到任何表明这种限制的资源,我相信我做错了什么。但是,我无法弄清楚问题出在哪里,因此是问题所在。

我已经根据Oracle 11g 第 1 版中的本机 Oracle XML DB Web 服务在我的 Oracle 数据库中配置了本机 Web 服务,并且我已经成功地使用 SoapUI 测试了基本数据类型的过程。

为了排除问题的任何其他来源,我创建了以下重现问题的最小化测试包:

如果我现在在 SQLPlus 中运行定义的过程,它运行良好:

配置服务并将包定义到数据库后,我可以从http://host:port/orawsv/DBSCHEMA/WEB_TEST_PACKAGE?wsdl获取包的 WSDL 。我使用 WSDL 创建了一个 SoapUI 项目,其中包含一个示例请求。然后我将请求配置为使用基本身份验证,并准备好测试查询。

使用 SoapUI 运行查询时,响应中出现以下错误:

如果我现在正确解释错误,则意味着我在选择子句所在的行上收到错误 ORA-00904 "invalid identifier"。在我的理解中,“XMLTYPE”是该行的唯一标识符,这意味着当通过 Web 服务执行过程时无法识别它。

所以最后的问题是:XMLTYPE 不能用于通过 Web 服务调用的过程中是否存在限制?或者我在这里错过了什么?

作为记录,我还尝试将构造函数格式 XMLTYPE(...) 替换为方法格式 XMLTYPE.CreateXML(...),但这没有帮助。

0 投票
2 回答
782 浏览

oracle - 在 Oracle XQuery (XMLQuery/XMLTable) 中比较日期

在尝试使用 Oracle 数据库执行一些检查时,XQuery我需要比较两个日期是否相同,但不能以明显的方式做到这一点,因为强制转换xs:date并不会真正从xs:dateTime.

查询本身似乎在另一个环境中运行良好(例如http://www.xpathtester.com/xquery)。

我是否错过了重要的事情,或者这种情况只是一个错误并且需要特殊的解决方法(转换为字符串值以进行比较,分别比较两个日期的年份、月份和日期等等)?


一个小例子...

假设我们有一个简单的 XML:

并希望与忽略时间部分date_value的固定值进行比较。xs:date('2015-09-11')

首先,将节点的内容转换为所需的类型,并通过将其转换为来删除时间部分xs:date

XMLQuery()如果我们在传递上面的文档时选择这个值as $doc,我们会得到预期的输出:

好的。似乎时间部分已删除,但比较失败:

返回false,如果我们尝试查看表达式中的值之间的差异而不是比较它们:

我们看到'PT15H25M55S',它们是完全匹配时间的一部分date_value

使用上述所有表达式进行查询以进行测试:

在此 Oracle 版本上重现的行为:


更新

感谢collapsarAlex Poole的回答,它们给了我关于正确解决方法的主要想法。但是为了解释问题的核心,我过度简化了我们的用例,其中包括一些日期算术和现实世界的解决方法,看起来像下面的查询。

0 投票
0 回答
1580 浏览

sql - Oracle Case Statement 与 XMLElement 一起在每次执行时给出不同的输出

这是我试图执行的 oracle 查询,它在每次执行时给出不同的输出。对于第一次执行,它给出了正确的xml所有后续请求,它返回 null。此外,可怕的是当我将xml元素名称从更改"PHONE"为时"PHONE1",它再次仅在第一次和NULL后续请求中提供输出。

此外,如果我硬编码CLI_PHONENUMBER(表中存在的相同值)的值,它总是给出正确的输出。

0 投票
1 回答
223 浏览

database - 在 oracle-xml 中使用 XMLElement 的问题

我正在创建一个 xml 类型的 Oracle 表(我是新手)。我在表中插入了几条记录。当我尝试使用 select 语句从表中检索记录时,出现以下错误。

[错误] 脚本行:404-405 ---------- ORA-00904:“E”。“ENAME”:无效标识符脚本行 404,语句第 1 行,第 25 列

创建语句:

插入语句之一

当我执行以下语句时,我收到错误 SELECT XMLELEMENT("Name",e.ENAME) FROM EMPLOYEE_XML e /

注意:我需要使用 XMLELEMENT 从表中检索数据