问题标签 [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.
oracle - 使用 XQUERY 节点函数将值提取到行中
我的问题与这个问题相同,但我使用的是 Oracle 12.1 而不是 SQL Server。
我想从以下 xml 文档中提取所有名称元素:
我想要的输出是三个单独的行,例如:
使用以下查询
显示了名称,但输出都在一行上:
看起来我需要使用该NODE
函数,但我不知道如何在 Oracle 上下文中使用它。
oracle - 得到多项序列
我的意图是“选择容器编号等于输入数据的数据”(搜索功能的种类)。当我尝试检索数据时遇到问题,在 where 条件下出现问题:
在这里,我得到了多个数据。我不知道如何在 where 条件下迭代它。
我的查询是:
我的源 XML 是:
我如何选择所有 sealId 为 5678 的声明?在这种情况下如何处理 where 条件?
java - 无法使用标签数组编写复杂类型的 where 条件
我是 XML 数据库的新手,在为 transportEquipment 的 id 写入 where 条件时遇到问题。
我的xml是:
下面是从数据库中获取的 xml。这个xml在transportequipment中有多个id,我们需要在id上写where条件。我能够在 localreferencenumber 和标识符等上写 where 条件。但是没有写在transportEquipment的“id”上,bcz这里有很多。
并且我无法将 where 条件添加到以下查询
sql - 选择子选择解析结果oracle
临时提取物:
ACH_ADDENDA:
- 这需要仅对表 A(事务类型 1)的临时表中的值是本地的,但在 xml 上,它也显示在事务类型 2 的输出中。我将如何使用其中的 where 查询使该子选择成为本地?谢谢你的时间。
输出如下:
PMTRELINFO 适用于第一个事务,而不是第二个事务。
sql - 提取值/xmlsequence
我有以下代码,它适用于它提取的较小数据,但是当它遇到更大尺寸的记录时,它会出错。我将如何解决 ORA-01706:user function result value is too large 错误?
感谢您的时间!
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:
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(...),但这没有帮助。
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 版本上重现的行为:
和
更新
感谢collapsar和Alex Poole的回答,它们给了我关于正确解决方法的主要想法。但是为了解释问题的核心,我过度简化了我们的用例,其中包括一些日期算术和现实世界的解决方法,看起来像下面的查询。
sql - Oracle Case Statement 与 XMLElement 一起在每次执行时给出不同的输出
这是我试图执行的 oracle 查询,它在每次执行时给出不同的输出。对于第一次执行,它给出了正确的xml
所有后续请求,它返回 null。此外,可怕的是当我将xml
元素名称从更改"PHONE"
为时"PHONE1"
,它再次仅在第一次和NULL
后续请求中提供输出。
此外,如果我硬编码CLI_PHONENUMBER
(表中存在的相同值)的值,它总是给出正确的输出。
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 从表中检索数据