设置文本表 hsqldb java 异常
Posted
技术标签:
【中文标题】设置文本表 hsqldb java 异常【英文标题】:Set text table hsqldb java exception 【发布时间】:2014-06-06 18:35:43 【问题描述】:我有一个保存在 txt 文件中的矩阵,我想将它加载到一个 hsqldb 表中,其中矩阵中的每一列都加载到表中的一列中。
这就是我所做的
kId= new String[numOfFields];
String f="";
String ff="";
String fff="";
for (int i=0;i<kId.length;i++)
while(rss.next())
kId[i]=rss.getString(1);
f="a"+kId[i]+ " varchar(7)";
ff+="a"+kId[i]+", ";
fff+="a"+kId[i]+ " varchar(7), ";
String sqlalter=new String("ALTER TABLE "+ tableName +" add "+f+"");
//System.out.println(sqlalter);
stmt1.executeUpdate(sqlalter);
f=f.substring(0, f.length()-1);
ff = ff.replaceAll(", $","");
fff = fff.replaceAll(", $","");
String sqlmatrixcreate=new String ("CREATE TEXT TABLE tempMatrixTable " + " ("+fff+") ");
//System.out.print(sqlmatrixcreate);
stmt1.executeUpdate(sqlmatrixcreate);
String setTempMatrixTable= new String ("set table "+"tempMatrixTable"+ " ("+ff+") " + " source 'matrix.txt'");
stmt1.executeUpdate( setTempMatrixTable);
String insertWeight= new String("INSERT INTO "+ tableName +"("+ff+")"+ " select weight from tempMatrixTable");
System.out.print(insertWeight);
stmt1.executeUpdate(insertWeight);
String dropTempWeight= new String("drop table tempMatrixTable");
//stmt1.executeUpdate(dropTempKey);
tableName的结构如下 身份证 | a1 | a2 | a3 ....等等
tempMatrixTable的结构如下 a1 | a2 | a3 ....等等
当我运行这段代码时,我得到了这个异常
java.sql.SQLSyntaxErrorException: unexpected token: ( --> It refers to the line to execute the set statement
请指导我
谢谢
【问题讨论】:
【参考方案1】:表名后不应有左括号:
String setTempMatrixTable= new String ("set table "+"tempMatrixTable"+ " source 'matrix.txt'");
【讨论】:
以上是关于设置文本表 hsqldb java 异常的主要内容,如果未能解决你的问题,请参考以下文章
原因:org.hsqldb.HsqlException: invalid statemnet - 导入 CSV 数据时需要文本表
org.hsqldb.HsqlException:连接异常:连接失败:java.io.EOFException
具有 hsqldb 脚本文件的唯一约束违规异常(未读取空格字符)