Oracle Apex ORA-00922:缺少或无效选项

Posted

技术标签:

【中文标题】Oracle Apex ORA-00922:缺少或无效选项【英文标题】:Oracle Apex ORA-00922: missing or invalid option 【发布时间】:2017-12-06 06:01:51 【问题描述】:

我尝试在 oracle apex 上创建一个表,但是当我运行它时,它显示以下错误:ORA-00922:缺少或无效选项。 这是我的代码:

CREATE TABLE  "PROD_INDEX" 
   (    
       "PNO" NUMBER (4,0) NOT NULL ENABLE,
    "CATEGORY" VARCHAR(15) , 
    "PRODUCT" VARCHAR2(10), 
    "COUNTRY" VARCHAR2(9), 
    "BRAND" VARCHAR(10)), 
    "DATE" DATE, 
    "YEAR" NUMBER(4,0), 
    "COST" NUMBER(7,2), 
    "SALES" NUMBER(10,2), 
     PRIMARY KEY ("PNO") ENABLE
   )
/

那么可能是什么问题?

【问题讨论】:

您的代码有错字:"BRAND" VARCHAR(10))。删除额外的 ( 并运行您的语句。查看Live SQL demo。 【参考方案1】:

运行以下语句。

CREATE TABLE "PROD_INDEX" 
(    
    "PNO" NUMBER (4,0) NOT NULL ENABLE,
    "CATEGORY" VARCHAR(15) , 
    "PRODUCT" VARCHAR2(10), 
    "COUNTRY" VARCHAR2(9), 
    "BRAND" VARCHAR(10), 
    "DATE" DATE, 
    "YEAR" NUMBER(4,0), 
    "COST" NUMBER(7,2), 
    "SALES" NUMBER(10,2), 
    PRIMARY KEY ("PNO") ENABLE
)

【讨论】:

我做到了。还是没有运气 品牌栏用额外的括号封闭 “品牌”VARCHAR(10)), 不,不是这样。尽管如此,错误仍然存​​在。但是当我从第二行中删除 NOT NULL ENABLE 部分时,它确实消失了。 idk 那么如何指定 PNO 不能为空 哦不,其实没关系。因为它被指定为主键,所以它自动不能为空。【参考方案2】:
CREATE TABLE  "PROD_INDEX" 
   (    
       "PNO" NUMBER (4,0),
    "CATEGORY" VARCHAR(15) , 
    "PRODUCT" VARCHAR2(10), 
    "COUNTRY" VARCHAR2(9), 
    "BRAND" VARCHAR(10)), 
    "DATE" DATE, 
    "YEAR" NUMBER(4,0), 
    "COST" NUMBER(7,2), 
    "SALES" NUMBER(10,2), 
     PRIMARY KEY ("PNO") ENABLE
   )

去掉了不为空的启用,它可以工作了。

【讨论】:

“有效”。嗯,我觉得这很难相信,因为实际问题是 BRAND 列定义中的额外括号。这是一个Livesql demonstration,它表明额外的括号是问题所在。【参考方案3】:

试试这个。

CREATE TABLE  "PROD_INDEX" 
   (    
    "PNO" NUMBER (4,0) PRIMARY KEY,
    "CATEGORY" VARCHAR(15) , 
    "PRODUCT" VARCHAR2(10), 
    "COUNTRY" VARCHAR2(9), 
    "BRAND" VARCHAR(10), 
    "DATE" DATE, 
    "YEAR" NUMBER(4,0), 
    "COST" NUMBER(7,2), 
    "SALES" NUMBER(10,2)
   )

此外,以 Oracle 保留字(例如日期)命名列被认为是不好的做法

【讨论】:

以上是关于Oracle Apex ORA-00922:缺少或无效选项的主要内容,如果未能解决你的问题,请参考以下文章

ORA-00922:修改视图时缺少或无效选项 - Oracle [重复]

Oracle SQL Plus:创建用户时出现错误“ORA-00922:缺少或无效选项”

创建表时出现“ORA-00922:缺少或无效选项”

一个存储过程,报错如下 13 PL/SQL:ORA-00922:缺少或无效选项 13 PL/SQL:SQL Statement ignored

oracle创建实例时出现ORA- 00922缺失或无效,忽略后出现ORA-28000账号已被锁定。

ORA-00922: 创建 PL/SQL 过程时选项丢失或无效