2017-04-08 143 views
-1

我正嘗試在Java中的Oracle數據庫中創建一個表。當我運行此我得到的錯誤從Java連接到Oracle數據庫

ORA-00900:無效的SQL語句呼叫

無效的參數我不知道如何解決這個問題,我的研究也得出了空。

package Project2; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
import java.sql.Statement; 

public class Embedded { 

private static String dbURL = "jdbc:oracle:thin:@query.engr.uconn.edu:1521:BIBCI"; 
private static Connection conn = null; 
private static Statement stmt = null; 

public static void main(String[] args) { 
    createConnection(); 
    createTable(); 
    //insertValue(); 
    shutdown(); 
} 

private static void createConnection() { 
    try { 
     Class.forName("oracle.jdbc.OracleDriver").newInstance(); 
     //Get a connection 
     conn = DriverManager.getConnection(dbURL, "cse4701", "datamine"); 
    } catch (Exception except) { 
     except.printStackTrace(); 
    } 
} 

private static void createTable() { 
    //String sql = "CREATE TABLE IG_READY (PatientId VARCHAR(20), APC integer, TP53 integer, KRAS integer, PIK3CA integer, PTEN integer, ATM integer, MUC4 integer, SMAD4 integer, SYNE1 integer, FBXW7 integer, Status integer)"; 
    try { 
     stmt = conn.createStatement(); 
     stmt.executeQuery("creat table CRCDB.IG_READY (PatientId VARCHAR(20), APC integer, TP53 integer, KRAS integer, PIK3CA integer, PTEN integer, ATM integer, MUC4 integer, SMAD4 integer, SYNE1 integer, FBXW7 integer, Status integer, PRIMARY KEY (PatientId));"); 
     //stmt.executeQuery("use CRCDB"); 
     stmt.close(); 
    } catch (SQLException e) { 
     System.out.println(e.getMessage()); 
    } 
} 

private static void shutdown() { 
    try { 
     if (stmt != null) { 
      stmt.close(); 
     } 
     if (conn != null) { 
      DriverManager.getConnection(dbURL + ";shutdown=true"); 
      conn.close(); 
     } 
    } catch (SQLException sqlExcept) { 
     System.out.println(sqlExcept.getMessage()); 
    } 
} 

}

+2

從你的SQL字符串中移除';'。另外:'executeQuery()'用於select語句。要運行DDL,使用'execute()'或'executeUpdate()'。對於Oracle JDBC URL,沒有'; shutdown = true'選項。在[Oracle JDBC手冊](http://docs.oracle.com/database/121/JJDBC/toc.htm)中,您是否找到這種情況? –

+2

另外,creat應該創建 –

回答

2

錯就錯在你的SQL語句

stmt.executeQuery("creat table CRCDB.IG_READY (PatientId VARCHAR(20), APC integer, TP53 integer, KRAS integer, PIK3CA integer, PTEN integer, ATM integer, MUC4 integer, SMAD4 integer, SYNE1 integer, FBXW7 integer, Status integer, PRIMARY KEY (PatientId));"); 

你拼寫錯誤的「創建表」

還首次執行小測試表,然後語句創建你的餐桌

我好PE這可能會幫助你解決你的問題,如果我得到任何其他信息,我會告訴你絕對

+0

非常感謝!我修復了這些錯誤,現在正在獲取以下內容.ORA-00604:遞歸SQL級別1發生錯誤 ORA-20905:您不能執行此操作。特權不足 ORA-06512:在第2行 調用 – user2464532

+0

中的無效參數假設您沒有權限在數據庫中創建表。檢查oracle數據庫系統中的權限。 –

+0

你真的有一個用戶名爲「CRCDB」..這是我認爲的問題 –