'Oracle'에 해당되는 글 1건

  1. 2015.10.05 ORA-00907: missing right parenthesis 오류 1
2015. 10. 5. 13:26

갑자기 Oracle 프로젝트를 맡게되었다... 사실 PHP를 하면서 Oracle을 접할일이 거의 없었다.

처음에는 막연하게 몇몇 부분을 제외하고는 거의 비슷할 것이라 생각을 했었는데...이건 오판이었다.

 

시작부터 너무 막히기 시작...

 

1. Oracle은 AUTO_INCREMENT를 지원하지 않는다.

이에 대한 해결은 ORACLE 에서 auto-increment 생성하기을 참고하여 처리하였다.

 

2. Oracle은 Limit를 지원하지 않는다.

이에 대한 해결은 블로그 하나의 글만 확인해서는 정상적으로 되지 않았다.

3~4개의 블로그를 보고 나름 테스트 하여 겨우 성공하였으나  아직 갈길이 먼것같다.

 

3. Oracle은 Integer를 거의 쓰지 않는다고 한다. 검색을 해보니 Number type을 사용한다고 한다.

 

4. Oracle에서는 TEXT type이 없다.

확인 결과 VARCHAR2를 사용한다고 한다.

 

5. DB를 생성할때 Defalt 와 not null의 위치는 별로 중요하지 않았다.(mysql기준)

그러나 Oracle은 다르다.

"NOT NULL DEFAULT '0'"이라고 했더니 ORA-00907: missing right parenthesis라는 오류를 발생시킨다.

확인을 해보니 콤마(,)가 빠졌을때도 발생한다고 하였으나

내 경우는 콤마 문제가 아니었다. 그래서 좀더 확인한 결과 위 문장의 순서때문에 발생한 것이다.

즉, "NOT NULL DEFAULT '0'" 는 "DEFAULT '0' NOT NULL"로 순서를 바꿔야 한다.

 

6. ALTER TABLE에서 AFTER(mysql)도 지원하지 않는다.

 

7. ALTER TABLE에서 ADD, CHANGE(Mysql)는 ADD(), MODIFY()와 같이 ()안에 타입등을 정의해야 한다.

 

현재까지 작업을 하면서 발생하고 처리한 부분을 차후 잊지않기 위해 남긴다.

* PDO를 사용하고 Oracle XE 11g에서 테스트 하였다.

Posted by 작은0악마