개발공작소
article thumbnail
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
반응형
profile

개발공작소

@모찌바라기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!