Java中的SQL查询错误
这听起来非常简单,但我不知道为什么下面的代码不会创建表,而只是抛出一个错误。错误只是说“无法执行update one”(如catch语句中所指定)。代码是:Java中的SQL查询错误,java,sql,oracle,Java,Sql,Oracle,这听起来非常简单,但我不知道为什么下面的代码不会创建表,而只是抛出一个错误。错误只是说“无法执行update one”(如catch语句中所指定)。代码是: sqlString = "CREATE TABLE TEMP " + "(Student_name varchar(30) NOT NULL, " + "Student_id char(5) NOT NULL, " + "Num_exam smallint NOT NU
sqlString = "CREATE TABLE TEMP " +
"(Student_name varchar(30) NOT NULL, " +
"Student_id char(5) NOT NULL, " +
"Num_exam smallint NOT NULL, " +
"PRIMARY KEY (Student_id))";
try {
stmt.executeUpdate(sqlString);
} catch (SQLException e) {
System.out.println("Could not execute update one");
stmt.close();
return;
}
任何帮助都将不胜感激。干杯
编辑:打印StackTrace结果
java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing object
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:210)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:30)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:931)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1150)
at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1707)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1670)
at oracle.jdbc.driver.OracleStatementWrapper.executeUpdate(OracleStatementWrapper.java:310)
at application.busyStudents(application.java:282)
at application.main(application.java:67)
尝试创建
sqlString
更改表名:
sqlString = " CREATE TABLE TEMP1 " +
"( Student_name varchar(30) NOT NULL, " +
" Student_id char(5) NOT NULL, " +
" Num_exam smallint NOT NULL, " +
" PRIMARY KEY (Student_id))";
打印stacktrace并粘贴到此处。如果没有特定的错误,就无法完成很多工作。将
e.printStackTrace()
放入catch块并发布()输出。您可以使用e.printStackTrace()和其他函数(如e.getCause()等)从错误中获取更多信息。您是否可以尝试修改查询,如下所示:Student_name varchar(30)NOT NULL PRIMARY KEY。。。。。。。最后删除主键(Student_id)?我想您已经创建了一个名为“TEMP”的表。更改表名并尝试执行查询。这就是为什么需要显示printStackTrace()的原因