IN 在语句 DB2 等价于 HSQLDB

Posted

技术标签:

【中文标题】IN 在语句 DB2 等价于 HSQLDB【英文标题】:IN in statement DB2 equivalence to HSQLDB 【发布时间】:2016-02-03 08:11:04 【问题描述】:

我正在尝试将数据库DB2的脚本.DDL的代码更改为HSQLDB,接下来我遇到了问题:

原因:java.sql.SQLException: Unexpected token: IN in statement [IN]

在创建表中:

CREATE TABLE "tableName" (...) IN "USERSPACE1";

HSQLDB中不存在IN语句,有什么等价的吗?

【问题讨论】:

HSQLDB 不支持表空间,也不支持任何相同的概念。那么HSQLDB中不存在IN语句? 【参考方案1】:

每个数据库系统都有自己的持久化配置方法和不同的关键字和 DDL 语句来访问这些方法。 IN <table_space> 子句仅适用于 DB2。

要转换为 HSQLDB,您可以删除该子句。您可以将 HSQLDB 表持久性的类型定义为 MEMORY、CACHED 或 TEXT(对于 CSV 文件)。如果您需要的表类型不是默认值,则可以在 CREATE TABLE 语句之后使用单独的语句。您也可以更改默认值。以下示例:

SET DATABASE DEFAULT TABLE TYPE CACHED

SET TABLE <table name> TYPE CACHED

【讨论】:

【参考方案2】:

HSQLDB 不支持表空间,也不支持任何相同的概念

【讨论】:

以上是关于IN 在语句 DB2 等价于 HSQLDB的主要内容,如果未能解决你的问题,请参考以下文章

什么是 linq 等价于 SQL IN 运算符

是否有一个 JavaScript 等价于 Python pass 语句,它啥都不做?

DB2 中的 datastage 转换函数的等价物是啥

DB2 中的 Cross Apply 等价物

MongoDB 等价于 SQL“NOT LIKE”查询

等价于 regexp_substr 中的 regexp_replace((^[A-Z])|([IJ])|(?<= ).)