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.