작성
·
278
답변 2
1
저도 11g인데 안 되어서 보니까 이런 게 있었네요
아니면 트리거를 사용해도 되는데 트리거를 활용하는 건 어떻게 생각하실까요~?
테이블 만들 때 default는 안 넣었어요!
아래에 소스 공유드립니다~
create sequence sequence_real_order
increment by 1
start with 1000000
minvalue 1
maxvalue 9999999
nocycle
cache 20
noorder;
create table real_order (
order_no number(10) not null,
...
);
create or replace trigger order_no_before_insert
before insert on real_order
for each row
begin
select sequence_real_order.nextval
into :new.order_no
from dual;
end;
1
안녕하세요.
해당 기능은 오라클 11g 버전에서도 크게 문제 없는 구문입니다.
시퀀스만 잘 만들어져 있다면 크게 문제가 없어야 정상입니다.
생성 시 어떤 오류가 발생하는지 오류 메세지 보내주시면 확인해 보도록 하겠습니다.
안녕하세요.
해당 오류에 대해 확인을 해봐야 할것 같은데,
오류가 발생하는 구문을 올려주시면 확인해 보도록 하겠습니다.
제가 올린 구문과 동일하겠지만, 혹시나 해서 확인을 해보고자 합니다.
CREATE SEQUENCE sq_real_ord
INCREMENT BY 1
START WITH 1000000
MINVALUE 1
MAXVALUE 9999999
NOCYCLE
CACHE 20
NOORDER;
----
CREATE TABLE REAL_ORD
( ORD_NO NUMBER(10) DEFAULT SQ_REAL_ORD.NEXTVAL NOT NULL,
ORD_SEQ NUMBER(5) NOT NULL,
CST_ID VARCHAR2(20),
MNU_ID VARCHAR2(20),
MNU_SIZE VARCHAR2(20) DEFAULT 'N' NOT NULL ,
MNU_ICE VARCHAR2(20) DEFAULT 'N' NOT NULL ,
QTY NUMBER(10) NOT NULL ENABLE,
PRICE NUMBER(10),
TOTAL_PRICE NUMBER(10),
POINT_USE NUMBER(10,0) DEFAULT 0 NOT NULL ,
POINT_ADD NUMBER(10,0) DEFAULT 0 NOT NULL ,
REG_DAY DATE DEFAULT sysdate,
CONSTRAINT PK_REAL_ORD PRIMARY KEY (ORD_NO, ORD_SEQ)
) ;
입니다.
12c 버전에선 적용되는데 11g 에서는 안 되네요. 그냥 12c 버전으로 공부 하겠습니다
ORA-00984: 열을 사용할 수 없습니다
00984. 00000 - "column not allowed here"
디벨로퍼와 Secure CRT 로 접속해서 수행해봤는데 동일한 에러가 발생합니다