问题标签 [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 回答
1251 浏览

oracle - Oracle XMLQuery - 显示带有两个 XML 节点的逗号分隔列表

我有一个这样的查询-

尽管上面指定的示例包含一个节点,但在我的实际问题中,并不是每个<parent>节点都包含一个<item>节点。因此,我无法使用答案中描述的 XMLTable 解决方案。

SELECT xmlcast(...查询是我迄今为止在上面尝试过的,但它不起作用。我的预期输出是这个-

请建议我如何修改我的 XMLQuery。

0 投票
0 回答
355 浏览

sql - Oracle SQL 函数 XMLISVALID 总是返回 0

知道有人为什么这个语句给我的结果是 0 而不是 1

不可能有更多细节

0 投票
0 回答
152 浏览

oracle - Oracle XMLDB 检索无效 XML

我在使用 FTP 上传的 XML DB 中有无效的 XML 文件(缺少某些标记)。当我尝试使用 检索这些文件RESOURCE_VIEW时,出现以下错误。

ORA-31011: XML 解析失败 ORA-19213: 在第 1 行的 XML 处理中发生错误
LPX-00210: 期望 '<' 而不是 't'

ORA-06512:在“SYS.XMLTYPE”,第 138 行
31011。00000 -“XML 解析失败”
*原因:XML 解析器在尝试解析文档时返回错误。
*Action:检查要解析的文档是否有效。

如何使用 SQL 或 PL/SQL 检索此类内容,以便对其进行编辑和保存?

0 投票
1 回答
160 浏览

oracle - 如何使用 Oracle XML DB Webservices 将表作为一行返回

我正在尝试使用 XML DB Service 将 Oracle 表公开为 Web 服务。我想根据 Web 服务的请求中传递的条件返回多行表。

以下-:native-oracle-xml-db-web-services-11gr1

开发了一个以 PK 列作为输入并返回列作为输出的过程。它在逐列返回时起作用。但是当我尝试将完整的行作为类型返回时,它不起作用。

这是有效的。

网络服务的 URL -: http://domain:8080/orawsv/TEST/GET_TEST_TAB?wsdl

现在我想返回 TEST_TAB 表的多行,而不用硬编码列名。

0 投票
1 回答
161 浏览

oracle - 删除 Oracle dbms_xmlschema.registerschema 添加到模式中的所有注释

我通过 dbms_xmlschema.registerschema() 包子程序将模式注册到 Oracle XMLDB。

然后我从 user_xml_schemas 中选择注册的模式。

模式返回正常,但 Oracle 已将各种 Oracle 相关信息插入到模式中。这是一个示例插入(这只是其中之一):

xmlns:oraxdb="http://xmlns.oracle.com/xdb" oraxdb:storeVarrayAsTable="true" oraxdb:flags="2105633" oraxdb:schemaURL="mySchema.xsd" oraxdb:schemaOwner="bob" oraxdb:numProps ="22"

这与我在数据库中的使用无关,但是我需要向数据库外部的消费者提供架构,而 Oracle 注释只是让我的目标外部消费者感到困惑。

我想要的是能够使用我的“发明”dbms_xmlschema_annotate 来实现类似以下代码的功能。stripAllOracleAnnotations子程序:

所以我可以向外部消费者提供vMyOriginalPreRegisteredSchema 。

我已经搜索过,但找不到任何可以从 xml db 返回“原始、干净”模式的东西。

任何帮助将不胜感激。

注意:我尝试使用 XSL 转换来去除 Oracle 注释,但是虽然我创建的 XSL 文件在 XMLSpy 中完美运行,但 Oracle (18c) 完成了转换而没有错误,但返回的结果完全不正确。我通过 xmltransform() 和 xmltype.transform() 进行了测试。我只能假设这是因为 Oracle 在内部解释 oraxdb: 节点并“做自己的事情”。

0 投票
1 回答
68 浏览

oracle - 通过整个 XML 结果提取单个重复的 XML 节点

鉴于下面的 XML 示例,我如何<table_no>使用 Oracle XML 提取从上到下提取所有值。

基于以下,我希望从我的选择中看到以下单独的行:

XML 代码:

0 投票
1 回答
190 浏览

plsql - 从 PL/SQL 中的 XMLType 而不是表中提取 CLOB 中的节点值

假设我将以下 XML 数据分配给 CLOB 类型的 PL/SQL 中的局部变量,即:

因此,我不会将此 XML 存储在表列中,因为我想单独在我的 PL/SQL 包过程中进行处理。

使用上面的l_clob变量,我然后执行以下操作:

现在在我的程序中:

retrieve_all_table_no(p_response in XMLType)

如何逐行提取其中的所有节点值<table_no>

同样,这不是来自表,而是在 PL/SQL 中动态完成的。

我希望能够访问每个单独的值,以便我处理,即:

我不能使用提取,因为这将连接所有值。

0 投票
3 回答
612 浏览

xml - Oracle - 针对 XSD 验证 XML 中的日期格式 (yyyy-mm-ddThh24:mi:ssZ)

甲骨文版本:

这个查询的结果select * from v$version;是:

我的情况介绍:

我正在使用我的过程创建一个大型 xmltype,并将其插入到我的表中。然后,我尝试针对已在数据库中注册的 .xsd 验证创建的 xmltype 文件。我已经成功地缩短了 xmltype 数据和 .xsd 文件,因此我可以准确地向您展示 .xml 文件内的哪一行我遇到了问题。

我准备的代码你可以复制粘贴进行测试:

这是我的简单表:

创建 xmltype 数据并将其插入此表的过程如下:

然后我像这样注册我的 .xsd 架构:

然后我调用我的程序:

毕竟,我去尝试根据我注册的 .xsd 文件验证表中创建的 xmltype 数据。我尝试通过两种方式做到这一点:

1.通过使用isSchemaValid

2.通过使用schemaValidate

问题:

使用我使用的第一个方法(isSchemaValid),我得到的结果是 1。这意味着当我根据提供的 .xsd 模式验证它时,我的 xmltype 数据是正确的。使用我使用的第二种方法(schemaValidate),我得到的结果是一个错误:

我试过的:

当我从日期格式中删除“Z”部分时,一切正常,但这不是一个适合我的解决方案。日期的格式必须和现在一样。

0 投票
1 回答
34 浏览

sql - Oracle XMLtable 提供交叉连接的数据

我编写了一个 Oracle XML sql,它给出的输出如下所示。为了您的快速帮助,我已经给出了下面从创建表到下面的 sql 的整个代码。输出:(错误)

想要制作如下输出(必需输出):

代码:

我尝试了以下sql,您可以修改它或使用它创建一个新的:

0 投票
1 回答
1920 浏览

oracle - ORA-31061: XDB 错误: 特殊字符到转义字符的转换失败

我对 Oracle 的 XDB 完全陌生,试图在我完全陌生的生产环境中修复代码。

当我尝试执行上述查询时,Oracle 返回以下错误

ORA-31061: XDB 错误: 特殊字符到转义字符的转换失败。

这曾经在旧版本的 Oracle 中工作,在迁移到 oracle 12c 后,我们面临这个问题。