2017-04-08 13 views
-1

javaからOracle DBにテーブルを作成しようとしています。私はエラーJavaからOracle DBに接続

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

間違いはあなたが

を "テーブルの作成" もまず小さなテストテーブルでのstmtを実行し、mispelled 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));"); 

ですあなたのテーブルを作成する

私はホ他の情報があれば、私はあなたに確かに教えてくれるでしょう

+0

ありがとうございます! ORA-00604:再帰SQLレベル1でエラーが発生しました。 ORA-20905:この操作は実行できません。不十分な権限 ORA-06512:2行目 – user2464532

+0

のコールで無効な引数があり、データベースに表を作成する権限がないとします。 oracleデータベース・システムの権限を確認してください。 –

+0

あなたは本当に "CRCDB"という名前のユーザーを持っています..それは私が思う問題です –

関連する問題