콘텐츠로 이동

CREATE DIRECTORY

CREATE DIRECTORY#

구문#

create_directory

전제 조건#

SYS 사용자 또는 CREATE ANY DIRECTORY 시스템 권한을 가진 사용자만이 이 구문으로 디렉토리 객체를 생성할 수 있다.

설명#

저장프로시저에서 파일 조작이 가능하다는 것은 운영 체제 파일 시스템상의 텍스트 파일에 대한 읽기 및 쓰기가 가능하다는 것을 의미한다. 이 기능을 이용하여 사용자는 저장프로시저 실행에 대해서 메시지를 파일에 남길 수도 있으며, 파일로 질의 결과를 리포팅 하거나 파일로부터 데이터를 읽어와 테이블에 삽입하는 등 다양한 작업을 수행할 수 있다.

CREATE DIRECTORY구문은 이러한 저장프로시저가 사용하는 파일들이 위치하는 디렉토리에 해당하는 데이터베이스 객체를 생성하는데 사용된다.

CREATE DIRECTORY문으로 생성된 디렉토리 객체의 소유자는 항상 SYS사용자이다. 실제 디렉토리 객체를 생성한 사용자는 이 객체에 대한 읽기와 쓰기 권한(WITH GRANT OPTION 포함)을 부여받을 뿐이다.

CREATE DIRECTORY문의 실행은 SYS_DIRECTORIES_ 메타 테이블에 디렉토리 정보를 기록할 뿐이며, 실제 운영 체제의 파일 시스템에 디렉토리를 생성하지는 않는다. 따라서 사용자는 실제 파일 시스템에 수동으로 디렉토리를 생성해야 한다.

OR REPLACE#

이미 존재하는 디렉토리를 대체하여 같은 이름의 새로운 디렉토리를 생성하기 위한 옵션이다. 파일 시스템상의 실제 디렉토리는 삭제되지 않는다.

IF NOT EXISTS#

IF NOT EXISTS 절을 명시하면 같은 이름의 디렉토리 객체가 없을 때만 생성한다. 같은 이름의 디렉토리 객체가 있는 경우, CREATE 문은 이름 중복 오류 없이 실행되며 기존의 디렉토리 객체에는 아무 영향을 주지 않는다.

directory_name#

데이터베이스 객체로서의 디렉토리 이름을 명시한다. 디렉토리 이름은 "객체 이름 규칙"을 따라야 한다.

path_name#

운영 체제 파일 시스템 상의 디렉토리의 절대 경로를 문자열로 명시한다.

예제#

<질의> /home/altibase/altibase_home/psm_msg 디렉토리를 가리키는 alti_dir1 디렉토리 객체를 생성하라.

iSQL> create directory alti_dir1 as '/home/altibase/altibase_home/psm_msg';
Create success.

<질의> /home/altibase/altibase_home/psm_result 디렉토리를 가리키는 alti_dir1 디렉토리 객체를 생성하라. 이미 alti_dir1 이름의 디렉토리가 데이터베이스에 존재하는 경우 이를 대체하여 생성하라.

iSQL> create or replace directory alti_dir1 as '/home/altibase/altibase_home/psm_result';
Create success.