我有一个安装目录如下:
etc/fstab
10.100.52.12:/ftp /ftp nfs rw,bg,hard,nointr,rsize=1048576,wsize=1048576,tcp,vers=3,timeo=60,actimeo=0 0 0
# ll
drwxr-xr-x 6 root 1000 62 Mar 29 13:48 ftp
所以我必须把一个文件从这个目录“移动”到ACFS中的一个目录中
drwxrwxrwx 6 oracle oinstall 4096 Apr 10 09:34 ftp_files
这些而不是priv
(GRANTEE,TABLE_NAME,PRIVILEGE) PUBLIC FTP_IN READ PUBLIC FTP_IN WRITE DB_SCHEMA FTP_OUT READ DB_SCHEMA FTP_OUT WRITE
我执行这个来移动文件
declare SRC CONSTANT VARCHAR2(50) := 'FTP_IN'; DST CONSTANT VARCHAR2(50) := 'FTP_OUT'; begin UTL_FILE.FRENAME( src_location => SRC, src_filename => 'test.txt', dest_location => DST, dest_filename => 'test.txt', overwrite => FALSE); end;
但它不起作用,我明白了
ORA-29292: file rename operation failed ORA-06512: a "SYS.UTL_FILE", line 348 ORA-06512: a "SYS.UTL_FILE", line 1290 ORA-06512: a line 6 29292. 00000 - "file rename operation failed" *Cause: A file rename attempt was refused by the operating system either because the source or destination directory does not exist or is inaccessible, or the source file isn't accessible, or the destination file exists. *Action: Verify that the source file, source directory, and destination directory exist and are accessible, and that the destination file does not already exist. -rw-r--r-- 1 oracle oinstall 0 Apr 10 14:47 test.txt
但是,如果我只是试图删除文件而不是frename
它,它的工作原理。 那么这可能是什么?
这是来自DBA_DIRECTORIES的输出:
SYS FTP_IN /sftp SYS FTP_OUT /acfs/external/ftp_files CREATE DIRECTORY FTP_IN as '/ftp'; GRANT READ, WRITE ON DIRECTORY FTP_IN TO DB_SCHEMA; GRANT EXECUTE, READ, WRITE ON DIRECTORY FTP_IN TO SYSTEM WITH GRANT OPTION;
谢谢
testingUTL_FILE.FOPEN(SRC)
declare SRC CONSTANT VARCHAR2(50) := 'FTP_IN'; DST CONSTANT VARCHAR2(50) := 'FTP_OUT'; l_file UTL_FILE.FILE_TYPE; begin l_file:=utl_file.fopen(SRC,'test.txt','W'); UTL_FILE.PUT_LINE(l_file, CONVERT('test', 'AL32UTF8')); UTL_FILE.FCLOSE(l_file); end; -rw-r--r-- 1 oracle oinstall 5 Apr 10 15:21 test.txt
testingUTL_FILE.FOPEN(DST)
declare SRC CONSTANT VARCHAR2(50) := 'FTP_IN'; DST CONSTANT VARCHAR2(50) := 'FTP_OUT'; l_file UTL_FILE.FILE_TYPE; begin l_file:=utl_file.fopen(DST,'test.txt','W'); UTL_FILE.PUT_LINE(l_file, CONVERT('test', 'AL32UTF8')); UTL_FILE.FCLOSE(l_file); end; -rw-r--r-- 1 oracle oinstall 5 Apr 10 15:29 test.txt [oracle@db01 ftp_files]$ pwd /acfs/external/ftp_files [oracle@db01 ftp_files]$
https://asktom.oracle.com/pls/apex/f?p=100:12:0::NO::P12_ORIG,P12_PREV_PAGE,P12_QUESTION_ID:Y,1,9534424300346182278
“如果我只是试图删除文件,而不是frename它,它的工作..所以这可能是什么?
所以操作系统的源代码目录是存在的, oracle
操作系统帐户上有写权限。
但是, frename
失败表明:
oracle
操作系统帐户没有写权限,或者