问题在于使用第4行的序列的DEFAULT值。
CREATE OR REPLACE SEQUENCE CHANNEL_SEQ START WITH 1 INCREMENT BY 1;
CREATE TABLE "CHANNEL" (
"ID_CHANNEL" NUMBER(18,0) DEFAULT CHANNEL_SEQ.NEXTVAL,
"IS_ACTIVE" VARCHAR2(1 CHAR) NOT NULL,
"BATCH_SIZE" NUMBER(3,0) NOT NULL,
"MAX_DOCS_IN_PROCESS" NUMBER(4,0) NOT NULL,
"RECEIVER_ID" NUMBER(18,0) NOT NULL,
"LAST_POS_SESSION_TIME" DATE,
CONSTRAINT "PK_CHANNEL" PRIMARY KEY ("ID_CHANNEL"),
CONSTRAINT "FK_RECEIVER_ID_CHANNEL" FOREIGN KEY ("RECEIVER_ID") REFERENCES "MSG_OUT"("MSG_OUT_ID"),
CONSTRAINT "CHK_IS_ACTIVE" CHECK (IS_ACTIVE IN ('Y', 'N'))
);
错误消息是:
" SQL错误:ORA-00984:此处不允许使用列"
欢迎提供所有帮助和提示。
答案 0 :(得分:2)
您不能使用seq.NEXTVAL
作为默认值。
为此目的(自动填充),您应该创建触发器,例如
CREATE OT REPLACE TRIGGER
BEFORE INSERT
ON CHANNEL
FOR EACH ROW
BEGIN
:NEW.ID_CHANNEL:=CHANNEL_SEQ.NEXTVAL;
END;