所以我创建了一个Oracle数据库模式,我正在尝试插入数据,但收到以下错误
SQL Error: ORA-00984: column not allowed here
00984. 00000 - "column not allowed here"
Run Code Online (Sandbox Code Playgroud)
这是我的表的DDL
CREATE TABLE "SAMPLE_TYPE"
(
"SAMPLE_TYPE_ID" NUMBER(10,0) NOT NULL,
"SAMPLE_CODE" VARCHAR2(20) NOT NULL,
CONSTRAINT SAMPLE_TYPE_PK PRIMARY KEY ("SAMPLE_TYPE_ID")
);
--------------------------------------------------------
-- DDL for Sequence SEQ_SAMPLE_TYPE
--------------------------------------------------------
CREATE SEQUENCE "SEQ_SAMPLE_TYPE" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 61 CACHE 20 NOORDER NOCYCLE ;
Run Code Online (Sandbox Code Playgroud)
最后这里是失败的insert语句.
INSERT INTO "SAMPLE_TYPE" (SAMPLE_TYPE_ID, SAMPLE_CODE) VALUES (SEQ_SAMPLE_TYPE.nextval, "Small");
Run Code Online (Sandbox Code Playgroud)
有关如何纠正此问题的任何想法?谢谢!
Oracle sql中的字符串由单引号分隔.您使用了双引号,因此Oracle认为您正在创建别名.当您双引号表名时,还必须确保使用创建表时使用的完全相同的大小写.这是一个简化版本
INSERT INTO SAMPLE_TYPE
(SAMPLE_TYPE_ID, SAMPLE_CODE)
VALUES
(SEQ_SAMPLE_TYPE.nextval, 'Small');
Run Code Online (Sandbox Code Playgroud)