[英]Caused by: org.hsqldb.HsqlException: invalid statemnet - text table required when importing CSV data
I am trying to import CSV data to HSSQL database using java and this SQL sentence: 我正在尝试使用java和以下SQL语句将CSV数据导入HSSQL数据库:
statement.execute("set TABLE data_source source 'data.csv;ignore_first=true;fs=\\semi'");
But I am getting this error: 但我收到此错误:
Exception in thread "main" java.sql.SQLException: invalid statemnet - text table required in statement [set TABLE data_source source 'data.csv;ignore_first=true;fs=\semi']
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.execute(Unknown Source)
at com.test.Application.main(Application.java:53)
Caused by: org.hsqldb.HsqlException: invalid statemnet - text table required
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.StatementCommand.getResult(Unknown Source)
at org.hsqldb.StatementCommand.execute(Unknown Source)
at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
at org.hsqldb.Session.executeDirectStatement(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)
... 3 more
PS using this in HSSQL client works fine: PS在HSSQL客户端中使用此功能的效果很好:
set TABLE data_source source 'data.csv;ignore_first=true;fs=\semi'
You need to escape the backslash twice. 您需要两次转义反斜杠。 The following code doesn't show any exceptions.
以下代码未显示任何异常。
public static void main(String[] args) throws Exception {
Connection connection = DriverManager.getConnection("jdbc:hsqldb:file:~/swdev/hsqldb/testdb", "SA", "");
PreparedStatement statement = connection.prepareCall("create text TABLE data_source (id INTEGER)");
statement.execute();
statement.close();
statement = connection.prepareCall("set TABLE data_source source 'data.csv;ignore_first=true;fs=\\\\semi'");
statement.execute();
statement.close();
connection.close();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.