从 XML (CLOB) 类型生成 HSQL 中的计算(虚拟)列

Posted

技术标签:

【中文标题】从 XML (CLOB) 类型生成 HSQL 中的计算(虚拟)列【英文标题】:Generate computed (virtual) column in HSQL from an XML (CLOB) type 【发布时间】:2016-11-09 10:28:17 【问题描述】:

我有一个使用 Oracle 数据库 的应用程序,并且我使用 XML typed 列来存储 XML 数据。 我有一些虚拟列,它们使用 XQuery 获取 XML 类型列的特定值并存储它。 它工作正常。

为了更好地理解,让我们想象一个存储媒体内容并具有 TITLE 虚拟列的应用程序:

CREATE TABLE MEDIA_OBJECT
(
    ...
    XML XMLTYPE ,
    TITLE AS ( UPPER(XMLCAST(XMLQUERY('/movies/movie/@title' PASSING XML RETURNING CONTENT) AS VARCHAR2(32))) ) VIRTUAL ,
    ...
)

问题是我想创建使用内存数据库单元和集成测试。 我已经尝试过 HSQLDB,一切正常,只是我无法运行 XQuery 从 XML 类型的列中获取数据。

我的问题是,在 HSQLDB 中怎么可能?如果不可能,在任何其他免费的内存数据库中是否有可能?

【问题讨论】:

【参考方案1】:

使用 HSQLDB,您可以使用此接口通过 JDBC 访问 XML 对象的内容。

http://www.hsqldb.org/doc/src/org/hsqldb/jdbc/JDBCSQLXML.html

【讨论】:

谢谢!我对此有 2 个问题: 1. 实际上我之前已经看过这个类,但它讲述了 XML 类型。在 HSQLDB 中没有 XML 类型,我将数据存储在 CLOB 类型中。它也适用于这种类型吗? 2.这是Java端的解决方案,不是DB端的。是否有数据库端解决方案(例如我提到的 Oracle 数据库)? 它允许您以 XML 形式访问 CLOB 类型的列。它确实是一个 JDBC 类。目前没有对 XML 字段的内部数据库访问。

以上是关于从 XML (CLOB) 类型生成 HSQL 中的计算(虚拟)列的主要内容,如果未能解决你的问题,请参考以下文章

JPA Entity CLOB 列用于测试的不同数据类型

生成 XML PLSQL 迭代

使用 Oracle 数据库中的 SQL 从 XML Clob 中提取数据

如何从 SQL 查询处理 Excel 中的 Clob 数据类型

Oracle 11g:从 CLOB 和表更新中读取 XML 记录

WithBLOBs包含数据库大字段,例如text,blob,clob