从 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 中的计算(虚拟)列的主要内容,如果未能解决你的问题,请参考以下文章
使用 Oracle 数据库中的 SQL 从 XML Clob 中提取数据
如何从 SQL 查询处理 Excel 中的 Clob 数据类型