无法使用 java 代码创建预言机表


try {
    String strQry= "CREATE TABLE IF NOT EXISTS ERROR_DETAIL ("SNO"NUMBER(16,0),"TABLE_NAME"  VARCHAR2(32 BYTE),"ERROR_DESC" VARCHAR2(255 BYTE),"XCOORDINATE" FLOAT(126),"YCOORDINATE" FLOAT(126),"STATUS"  VARCHAR2(30 BYTE),"COMMENT" Varchar2(255 Byte),PRIMARY KEY ("TABLE_NAME", "ERROR_DESC") ENABLE);";
    stmt = con.createStatement();
    stmt.execute(strQry);
} catch (Exception e) {
    e.printStackTrace();
}

此代码给出错误:

java.sql.SQLSyntaxErrorException: ORA-00922: missing or invalid option

但相同的查询在 Oracle 中正常工作

打印strQry变量的内容,您将看到它无效:

  • 列名两边不需要双引号
  • 每个列名及其类型之间应该有一个空格
  • 查询末尾不应有分号

此外,我认为您应该使用executeUpdate()而不是execute().

尝试使用以下一段代码。

try {
    String strQry= " CREATE TABLE IF NOT EXISTS ERROR_DETAIL (SNO NUMBER(16,0),TABLE_NAME VARCHAR2(32 BYTE),ERROR_DESC VARCHAR2(255 BYTE),XCOORDINATE FLOAT(126),YCOORDINATE FLOAT(126),STATUS VARCHAR2(30 BYTE),COMMENT Varchar2(255 Byte),PRIMARY KEY (TABLE_NAME, ERROR_DESC) ENABLE)";
    stmt = con.createStatement();    
    stmt.execute(strQry);                    
} catch (Exception e) { e.printStackTrace(); }

更改只是删除"(即在给定的代码中它是 ENABLE);" 中的;;

我正在将其更改为启用)";

最新更新