오라클에서 테이블이 없으면 CREATE 있으면 ALTER 하는 방법
개발자이긴 한데 오라클에 대한 지식이 좀 부족합니다.
고객사에 전달할 자회사 패키지의 DB 생성 Script를 작성중인데 고객사의 현재 테이블 상황이 어떤지 알 수가 없습니다.
우리테이블이 이미 존재할 수도 있고 존재하지 않을 수도 있습니다.
존재할 경우 테이블을 ALTER해야 하고 존재하지 않을 경우 CREATE 해야 합니다.
이걸 하나의 Script로 만드는 방법이 있을까요?
즉, Script를 DB툴에서 실행 시 테이블이 존재하지 않으면 CREATE문을 실행해서 테이블을 생성하고, 이미 존재하면 ALTER를 실행해서 테이블의 구조를 바꾸는 쿼리를 만들 수 있나요?
하나의 쿼리로 만들어 지면 제일 좋겠지만 불가능 하다면 PL/SQL을 써서 IF문을 쓰거나 다양한 방법으로 시도 가능합니다.
원하시는 해결을 위해 많은 상용 데이터베이스에서는 CRAETE OR REPLABE TABLE 이라는 구문을 제공하지만
오라클에서는 테이블에 대하여 CREATE OR REPLACE 구문을 제공하지 않습니다.
따라서 PL/SQL 등을 이용하여 별도로 작성해야 할 것 같습니다.
참고로 아래는 테이블 칼럼 존재 여부를 판단해서 칼럼을 추가하는 예입니다.