콘텐츠로 이동

CREATE DIRECTORY

CREATE DIRECTORY#

구문#

create_directory

전제 조건#

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

설명#

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

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

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

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

OR REPLACE#

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

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.