Получение синтаксической ошибки при выполнении оператора SQL - PullRequest
2 голосов
/ 01 июня 2011

У меня есть следующий метод, который удаляет базу данных, но я получаю синтаксическую ошибку, и я не знаю, что происходит.

public void deleteDB(){
    try{
        Statement s = conn.createStatement();
        System.out.println("Deleteting database...");
        s.execute("DROP DATABASE Courses");
        System.out.println("Database deleted.");
    }
    catch(SQLException error){
        System.err.println("Unable to delete database.");
        error.printStackTrace(System.err);
        System.exit(0);
    }
}

Я вызываю метод с помощью:

UpdateDB update = new UpdateDB();
update.connectDatabase(dbName);
update.deleteDB();

Я получаю эту ошибку:

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "DATABASE" at line 1, column 6.
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)

Есть предложения?

1 Ответ

10 голосов
/ 01 июня 2011

У вас есть база данных , называемая курсами? или таблица именованных курсов?

в соответствии с этим: http://db.apache.org/derby/docs/10.0/manuals/develop/develop13.html

Нет команды сброса базы данных. Чтобы удалить базу данных, удалите каталог базы данных с помощью команд операционной системы.

...