问题标签 [xmltype]

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 投票
1 回答
1416 浏览

sql-server - 在使用 XML Schema Collection 中的 XML 列创建表时使用 CONTENT 关键字

在创建具有 XML 类型列的表时,我指的是复杂的XML Schema Collection。当我指定XML Schema时,我可以选择提及CONTENTDOCUMENT关键字。后者将确保 XML 数据作为文档存储在单个列中。

根据视频教程,CONTENT将 XML 数据存储在片段中。

除了上述声明之外,我在其他任何地方都找不到关于CONTENT关键字的使用以及它对模式和数据的影响的参考。

我想知道片段是如何创建和管理的,是否以及如何单独查询它们。此外,片段是如何相关的。接下来,当我修改 XML Schema Collection 时,会有什么影响。

0 投票
2 回答
1594 浏览

xml - Oracle 中的 XSL 转换使用 XMLTYPE.TRANSFORM 返回一个片段,需要文档

这应该是一个简单的...

在 Oracle 中,我使用 XMLTYPE.TRANSFORM(myxml, myxsl) 来执行转换。

返回的 XMLTYPE 是一个片段(即没有 XML 文档声明)。我要求输出是一个文件(即带有<?XML version="1.0" ?>声明)。

我的 trasform 使用独立工具可以正常工作。

任何帮助,将不胜感激..

0 投票
2 回答
1791 浏览

xquery - 使用带有 XMLTable 的 ora:view 以 XML 形式查询关系表

我有一个名为 DOCTYPES 的 Oracle 关系表,其中包含 ID、DOCTYPE、SUBTYPE 列。

当我在 Oracle SQL Developer 中运行以下语句时

我按预期返回标签之间的结果。但是当我运行以下语句时,我得到一个错误:

LPX-00801:“=”处的 XQuery 语法错误。我不明白为什么第二个语句不起作用。

非常感谢您提前提供的帮助。

0 投票
1 回答
733 浏览

sql - 使用 xsl 和 DB 查询进行 XML 转换

我正在使用 Java 使用 Transformer 类转换 xml 文件。我将样式表 (xls) 文件与输入 xml 文件一起传递给转换器,这给了我一个转换后的输出 xml 文件。

同时我还需要查询数据库并将一些额外的数据从数据库中插入到 XML 文件中,因此我使用 JDBC 和 xQuery 连接到 Oracle 数据库并查询关系表。在 ResultSet 中,我得到 XML 格式的 ROWS。

我的计划是将这些行作为参数传递给 Java Transformer,并在转换过程中将此数据插入适当的位置。该参数将包含几行,并且 O 需要在要插入的转换期间选择特定行。这行得通吗?

我尝试将 ResultSet 转换为 XMLType 但失败了。我可以将 ResultSet 转换为另一种对象类型并将其用作 Transformer 的参数吗?

我希望这是有道理的。非常感谢您提前回答!

0 投票
1 回答
4560 浏览

oracle - Oracle:如何创建从 XMLType 中提取数据的快速刷新物化视图?

我有一个xml_documents包含两列的表:一个document_id列(主键)和一个xml包含一些 XML 数据的列,这是一个无模式的XMLType. 我可以只用 with 创建一个物化视图document_id

这工作正常,但不是很有用。如您所料,我希望物化视图从 XML 中提取数据,为此我使用extractValue(). 我正在尝试以下操作:

这失败了:

我应该如何在从 XML 中提取值的提交物化视图上创建快速刷新?

0 投票
2 回答
4560 浏览

java - 如何在 H2 数据库上管理 XmlType

我使用 H2 数据库进行单元测试。在我的应用程序中,我有一个名为FooXml定义的实体对象:

因此,为了从数据库中读取/写入 XML 内容,我创建了自己的 XMLType my.app.common.HibernateXMLType,它实现了org.hibernate.usertype.UserType. 方法nullSafeSetnullSafeGet在那里定义。

现在,我想为我的测试使用 H2 内存数据库,并且一些测试正在使用这个FooXml类。由于 H2 不支持 Oracle XmlType,我必须自定义我的my.app.common.HibernateXMLType. 例如,我添加了该部分:

我对这种方法有几个担忧:

  • 我在应用程序的生产代码中添加了与测试目的直接相关的代码(即不在测试代码中);
  • 由于此类依赖于org.h2.jdbc.JdbcConnection,因此我必须在我的 WAR 包中添加 h2-database 依赖项。

问题

  • 这是解决我的问题的最佳方法,还是有更好的方法?
  • 有没有办法告诉 Hibernate 使用另一种类型(my.app.common.HibernateXMLTypeForH2而不是my.app.common.HibernateXMLType)进行测试?

ps:在H2数据库中创建我的表的脚本如下:

技术细节:H2 Database v1.3.153、JUnit 4.8.1、Java 1.6、Hibernate 3.2.2、Oracle 10g 用于非测试环境

0 投票
0 回答
8712 浏览

oracle - 使用 Hibernate 将 XML 文档插入具有 XMLType 列的表时出现“ORA-31011:XML 解析失败”

我想使用已注册的 XML 模式文件将 XML 数据存储在 Oracle XMLType 列中。XML 文件和 XSD 架构都是有效的,并且 XML 符合该架构。为了让 Hibernate 使用 XMLType,我使用了 Hibernate 映射 Document-XMLType,它可以在这里找到:

http://solecjj.blogspot.com/2011/02/hibernate-with-oracle-xmltype.html

我的 Hibernate 映射 XML 如下所示:

这是相应的 POJO 类:

文档对象在控制器类中创建,并作为其 POJO 对象的属性传递给 DAO 对象:

DAO 类和接口非常简单:

处理控制器类中的方法 onSubmit() 时,我收到以下错误消息:

休眠:插入 JPERGLER.SCENARIO_TABLE_1 (SCENARIO_XML, SCENARIO_ID) 值(?,?)

严重:Servlet 调度程序的 Servlet.service() 抛出异常 org.springframework.dao.CleanupFailureDataAccessException:关闭前无法刷新会话:无法执行 JDBC 批量更新;嵌套异常是 org.hibernate.exception.GenericJDBCException:无法执行 JDBC 批量更新

...

原因:org.hibernate.exception.GenericJDBCException:无法在 org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126) 在 org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114) 执行 JDBC 批量更新) 在 org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)

...

原因:java.sql.BatchUpdateException:ORA-31011:XML 解析失败

在 oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:566) 在 oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:9365) 在 oracle.jdbc.driver.OracleStatementWrapper.executeBatch (OracleStatementWrapper.java:210) ) 在 org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70) 在 org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)

看起来创建的 Document 对象填充了正确的数据,因此错误似乎发生在 Hibernate 映射端。我开始感到绝望,任何帮助将不胜感激。

这是我要插入的示例 XML 文件:

0 投票
1 回答
5121 浏览

xml - 使用 Oracle 11g BI Publisher 创建 XML 数据的数据模型

我正在运行 Oracle BI Publisher 11g (11.1.1.3.0),并且正在尝试访问存储到数据库表中的 XML 数据。不幸的是,我遇到了几个问题,目前我很困惑。

我有一张桌子:

填充 XML 数据:

我可以用 sqlplus 查询它:

对我来说,到目前为止一切看起来都很好,但是当我尝试在 BI Publisher 中创建数据模型时,我遇到了几个问题。

根据 Oracle 文档Using Data Stored as a Character Large Object (CLOB) in a Data Model我应该能够在数据建模器中将 data1 列 CLOB 类型更改为 XML 类型。在我的安装中,我无法做到这一点,因为我从未提示过文档中描述的下拉菜单。为什么这个选项对我不可用?是表创建方式错误,还是数据插入方式错误,或者 BI Publisher 或 Oracle 数据库安装或配置方式错误?还是椅子和键盘之间的问题?但是,当我运行 XML 生成时,data1 的值(正确)显示为 CLOB:

但是列 data2(即 XMLTYPE 的类型)根本不被识别为 XML,但 BI Publisher 显示它是一个字符串,并在生成 XML 时返回 null(见上文)。

因为 BI Publisher 根本无法识别 XMLTYPE,所以我尝试了一种解决方法。在 BI Publisher 查询生成器中:

按预期工作:

但令人惊讶的是(对我来说)这失败了:

Query Builder 认为没问题,但是 XML 生成失败:

为什么 xmlcast + xmlquery 有效但 xmltable 无效?BI Publisher 不喜欢虚拟表吗?

0 投票
5 回答
5315 浏览

oracle - 通过 DBLink 移动 XML

我正在尝试通过 dblink 移动一些数据,其中一列是 XMLType 列。代码如下所示:

Oracle 返回以下错误:

对 ORA-22804 的一些研究表明,由于 XMLType 列,我可能会收到此错误,但我不确定如何解决此问题。

(甲骨文 10g)

0 投票
2 回答
7927 浏览

oracle - Oracle:如何对 XMLType 进行全文搜索?

我有一个将 XML 存储在 Oracle 表中的应用程序XMLType。我想对该数据进行全文搜索。Oracle 文档在Full-Text Search Over XML Data中建议使用containsSQL 函数,该函数需要使用索引对数据进行context索引。问题是context索引似乎是异步的,这不适合我需要能够在添加数据后立即搜索数据的用例。

我可以使该索引以某种方式同步吗?如果不是,我应该使用什么其他技术在 上进行全文搜索XMLType