외부 테이블을 사용하여 시스템의 폴더에서 파일을 읽습니다.Oracle 외부 테이블에서 파일 닫기
파일을 읽은 후 읽은 파일을 아카이브로 이동하려고하면 FILE IN USE 오류가 발생합니다.
외부 테이블의 파일 또는 일부를 닫을 수있는 메커니즘이 있습니까?
외부 테이블을 사용하여 시스템의 폴더에서 파일을 읽습니다.Oracle 외부 테이블에서 파일 닫기
파일을 읽은 후 읽은 파일을 아카이브로 이동하려고하면 FILE IN USE 오류가 발생합니다.
외부 테이블의 파일 또는 일부를 닫을 수있는 메커니즘이 있습니까?
경험을 재현 할 수 없습니다. 운영 체제 및 번호를 포함한 전체 Oracle 오류 메시지와 같은 관련 세부 정보를 포함하여보다 자세한 테스트 사례를 제공하십시오.
운영체제 디렉토리에감안할 때 읽기 쓰기 액세스 ...
SQL> select * from all_directories
2 where directory_name like 'DATA%'
3/
OWNER DIRECTORY_NAME DIRECTORY_PATH
------ --------------- ------------------------
SYS DATA_DROP /home/oracle/drop_zone
SQL>
... 나는 조회 할 수 있습니다이 테이블 ...
create table t42_ext (
field1 number,
field2 varchar2(20)
)
organization external
(
type oracle_loader
default directory data_drop
access parameters
(
records delimited by newline
fields terminated by ','
missing field values are null
)
location ('data20140923.txt')
)
reject limit unlimited;
... 작성 :
을SQL> select * from t42_ext;
FIELD1 FIELD2
---------- --------------------
23 'some data'
SQL>
그런 다음 별도의 OS 세션에서 파일을 이동합니다.
여전히 재생되지, 데이터베이스 내에서 조작 파일,SQL> r
1* select * from t42_ext
select * from t42_ext
*
ERROR at line 1:
ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-29400: data cartridge error
KUP-04040: file data20140923.txt in DATA_DROP not found
SQL>
대체 시나리오 :
[[email protected] ~]$ cd drop_zone
[[email protected] drop_zone]$ ls
data20140923.txt T42_EXT_3295.log
[[email protected] drop_zone]$ mv data20140923.txt ../data_archive
[[email protected] drop_zone]$ ls
T42_EXT_3295.log
[[email protected] drop_zone]$
위로 데이터베이스에 나는 더 이상 테이블을 조회 할 수 있습니다.
리셋 :
SQL> select * from t42_ext;
FIELD1 FIELD2
---------- --------------------
23 'some data'
SQL> begin
utl_file.frename(
src_location => 'DATA_DROP',
src_filename => 'data20140923.txt',
dest_location => 'DATA_ARCH',
dest_filename => 'data20140923.txt',
overwrite => FALSE);
end;
/
2 3 4 5 6 7 8 9
PL/SQL procedure successfully completed.
SQL> select * from t42_ext;
select * from t42_ext
*
ERROR at line 1:
ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-29400: data cartridge error
KUP-04040: file data20140923.txt in DATA_DROP not found
SQL>
액세스 권한이 문제였습니다. 지금 해결되었습니다. – theDbGuy
당신이 실제 ORA- 오류 번호를 제공하는 경우 그것은 항상 도움이됩니다. – APC
정확한 Oracle 버전 및 플랫폼 (운영 체제). –