我正在修改别人的Java代码,随时学习Java . :-) . 我正在编写hsqldb TEXT文件,我希望最终文件有一个“ Headers ”行,这样它们就可以更容易理解为纯文本 . hsqldb有一个开关'ignore_first = true'用于读取这些文件,但是我找不到写入该行的方法 . 它可能不存在,但文档中有一个对SOURCE HEADER的诱人参考 . 有谁知道如何使用它?这是我尝试过的简化示例:
String createtextTable =
"CREATE TEXT TABLE MolSet (" +
" id INT NOT NULL IDENTITY," +
" filename VARCHAR(300)," +
" expSolFilename VARCHAR(300)," +
" variance DOUBLE" + ");" ;
String headingsTable = "id,filename,expSolFilename, variance";
try
{
stmt = conn.createStatement();
stmt.execute(createtextTable);
setTableStmt = "SET TABLE " + “MolSet” + " SOURCE " +
'"' + TABLES[0] + ".csv;ignore_first=true" + '"';
stmt.execute(setTableStmt);
headingStmt = "SET TABLE " + “MolSet” + " SOURCE HEADER " +
'"' + headingsTable + '"';
stmt.execute(headingStmt);
}
catch( SQLException sqle )
{
return false;
}
return true;
}
这给出了sql错误:语句中的无效TEXT表源字符串[SET TABLE MolSet SOURCE HEADER]
我希望你能提供帮助,即使要确认这是不可能的 . 谢谢,乔斯林
2 回答
源头和源头字符串必须用单引号括起来:
您使用双引号代替 .
编辑:答案是最新版本 . 自1.8.x以来的较旧版本支持此功能,但可能需要双引号 . 标头和表中的列数必须匹配 . 或者,您可以在数据库脱机时编辑文本源,并自行添加 Headers .
此SQL文件适用于从表中生成CSV文本文件,还可以设置字段 Headers . 它特定于HSQLDB(版本1.8.1.3) .
数据库DL和docs的网站是HSQLDB.ORG
我希望它有所帮助 .