我正尝试在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());
}
}
}
从你的SQL字符串中移除';'。另外:'executeQuery()'用于select语句。要运行DDL,使用'execute()'或'executeUpdate()'。对于Oracle JDBC URL,没有'; shutdown = true'选项。在[Oracle JDBC手册](http://docs.oracle.com/database/121/JJDBC/toc.htm)中,您是否找到这种情况? –
另外,creat应该创建 –