728x90
반응형
오늘 테이블을 생성하는데, 아래와 같은 에러가 발생했다.
SQL Error [907] [42000]: ORA-00907: missing right parenthesis
에러내용은 우괄호가 빠졌다는 이야기인데... 내가 작성한 DDL은 아래와 같다.
CREATE TABLE TEST.sm_popup(
pop_id numeric NOT NULL,
pop_yn bpchar(1) NULL,
pop_sub varchar(50),
pop_con varchar(200),
beg_de varchar(8) NOT NULL,
end_de varchar(8) NOT NULL,
CONSTRAINT sm_popup_pkey PRIMARY KEY ([p[_id)
);
보통 이 에러는 괄호가 빠졌거나, 콤마가 빠졌을 때 발생하는 에러라고 하는데..
암만 눈을 씻고 찾아봐도 잘못 작성 된 문법을 찾을 수가 없었다.. 그래서 한참을 찾다가..
결국 내 실수였다. 원래 Postgresql에서 작성 된 테이블의 DDL을 그대로 갖다 붙이고,
테이블명과 컬럼명만 수정해주었는데..
bpchar이라는 데이터타입은 Postgresql에는 있지만 Oracle에는 없으니 당연히 에러가 발생한거였다..
아래와 같이 바꿔주니, 정상적으로 테이블이 생성 되었다.
CREATE TABLE TEST.sm_popup(
pop_id numeric NOT NULL,
pop_yn varchar(1) NULL, -- bpchar을 varchar로 변경
pop_sub varchar(50),
pop_con varchar(200),
beg_de varchar(8) NOT NULL,
end_de varchar(8) NOT NULL,
CONSTRAINT sm_popup_pkey PRIMARY KEY ([p[_id)
);
728x90
반응형