2012-10-27 53 views
3

我的代码:语法错误,同时从另一个表创建表

Statement stmt=null; 
    String cmdstr = "create table " + tableName + " as (select * from Master_Sheet);"; 

     try{    
      stmt = con.createStatement(); 
      stmt.executeUpdate(cmdstr); 

      } 
     catch(Exception e) 
      { 
      e.printStackTrace(); 
      } 
     finally 
     { 
      try{ 
       if(stmt != null) 
       stmt.close(); 
      } 
      catch(Exception e) 
      { 
       e.printStackTrace(); 
      } 
     } 

输出:

值java.sql.SQLException:[微软] [ODBC Microsoft Access驱动程序]语法在CREATE TABLE语句错误。 在sun.jdbc.odbc.JdbcOdbc.createSQLException(来源不明) 在sun.jdbc.odbc.JdbcOdbc.standardError(来源不明)

请帮帮忙,我是很新的Java代码。

回答

2

你问Access创建使用该SQL语句的表:

create table yourTableName as (select * from Master_Sheet); 

(包括;末)。它告诉你这是CREATE TABLE statement的无效语法。这不是Java的事情,它是一个Access的东西。请参阅链接的CREATE TABLE文档。 (我挂了最新的,一定要找到一个Access版本您正在使用。)

3

对于Access,用于创建基于查询的数据的新表的语法是:

SELECT INTO newTable 
FROM oldTable; 

所以,你的代码应该改写为:

String cmdstr = "insert into table " + tableName + " From Master_Sheet;"; 

请确保您的SQL语句遵循MS Access syntax你在Java代码中使用它们之前。