将文件中的数据加载到 hsqldb

Posted

技术标签:

【中文标题】将文件中的数据加载到 hsqldb【英文标题】:load data from file into hsqldb 【发布时间】:2014-05-31 19:02:05 【问题描述】:

如何 表中? 我有这个语句在 mysql 中可以正常工作,我想将其更改为适用于 hsqldb。

String sqlLoadkey ="load data local infile " +"'E:/Thesis/ThesisWork/outdata/keywords.txt'"+ " \n" +
            "   into table "+ "keywordsTable" +"(keywords)";
         stmt1.executeUpdate(sqlLoadkey);

这是我得到的例外

java.sql.SQLSyntaxErrorException: unexpected token: LOAD
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.executeUpdate(Unknown Source)
at ThesisCode.ReductionTry.main(ReductionTry.java:67)
Exception in thread "main" java.lang.NullPointerException
at ThesisCode.ReductionTry.main(ReductionTry.java:138)

任何想法 谢谢

【问题讨论】:

【参考方案1】:

LOAD DATA是对hsqldb无效的MySQL命令,但是可以使用临时表并更改源:

-- remporary table
create table yourdb.tmp_textfiletable (col1 varchar(250));  

set table yourdb.tmp_textfiletable 
    source "'E:/Thesis/ThesisWork/outdata/keywords.txt';ignore_first=false";

-- And insert it in your normal table:

INSERT INTO yourdb.keywordsTable (keywords) 
    select Col1 from yourdb.tmp_textfiletable;

-- after that you can drop it

drop table yourdb.tmp_textfiletable

【讨论】:

以上是关于将文件中的数据加载到 hsqldb的主要内容,如果未能解决你的问题,请参考以下文章

HsqlDB:重新加载 server.properties

比较 hsqldb 中的两个表

如何使用 Hibernate 加载 HSQLDB 脚本

是否无法将数据库/目录导出到 HSQLDB 中的单个文件

设置文本表 hsqldb java 异常

如何知道 hsqldb 内存数据库的最大大小