2012-10-27 51 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代碼中使用它們之前。