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:缺少或无效选项”
一个存储过程,报错如下 13 PL/SQL:ORA-00922:缺少或无效选项 13 PL/SQL:SQL Statement ignored