문법 |
그림 설명 : bfilename('디렉토리','파일이름')
목적 |
BFILENAME함수는 서버 파일 시스템의 물리 LOB 바이너리 파일과 연관된 BFILE locator를
반환한다.
'directory' 는 파일이 실제로 존재하는 서버 파일
시스템에서 Full Path 명에 대한 별명으로써 서버의 데이터 베이스 오브젝트이다.
'filename'은 서버 파일 시스템에서 파일의 이름이다.
SQL문, PL/SQL문, DBMS_LOB 패키지, OCI 운영에서 BFILENAME의 인수로써
사용하기전에 직접적으로 오브젝트를 생성하고, 물리적 파일을 가지는 BFILE값을 관련될 필요가 있다.
아래의 2개의 방법으로 함수를 이용할수 있다.
DML에서 BFILE열을 초기화 하는 경우
프로그램 인터페이스에서 BFILE locator에 값을 할당하는 것으로 BFILE데이터에 엑세스하는
경우
디렉토리 인수는 대소문자로 구별된다. 데이터 딕셔너리에 존재하는 이름과 같이 디렉토리 오브젝트 명을
지정했는지 확인할 필요가 있다. 예를 들어서, 만약 "Admin" 디렉토리 오브젝트가 CREATE DIRECTORY문장에서 대소문자가 혼합된
식별자를 인용부호로 둘러쌓아서 생성되었으면, BFILENAME함수를 이용하는 경우 디렉토리 오브젝트를 'Admin'으로 지정할 필요가 있다.
운영 시스템 상에서 대소문자 와 기호의 표기 규칙에 따라서 filename인수를 지정할 필요가 있다.
예제 |
다음 예제는 샘플 테이블 pm.print_media에
행을 삽입한다. 서버 파일 시스템에서 바이너리 파일을 인식하기 위해서 BFILENAME함수를 사용한다.
CREATE DIRECTORY media_dir AS '/demo/schema/product_media';
INSERT INTO print_media (product_id, ad_id, ad_graphic)
VALUES (3000, 31001,
bfilename('MEDIA_DIR', 'modem_comp_ad.gif'));