我有一个网络公共驱动器,每个人都可以读写,这是我运行 Windows 10 的电脑。我的 Oracle 实例在我的笔记本电脑上运行,即 Windows 11,我已将网络驱动器安装为我的笔记本电脑中的 Z 驱动器,并且我我能够访问和编辑驱动器内的文件。
文件位于
Z:/test.txt
CREATE OR REPLACE DIRECTORY NETTEST AS 'Z:';
- 用于创建目录对象并授予读写权限。
SET SERVEROUTPUT ON;
DECLARE
f1 UTL_FILE.FILE_TYPE;
s VARCHAR2(32767);
BEGIN
f1 := UTL_FILE.FOPEN('NETTEST', 'test.txt', 'r');
LOOP
BEGIN
UTL_FILE.GET_LINE(f1, s);
DBMS_OUTPUT.PUT_LINE(s);
EXCEPTION
WHEN NO_DATA_FOUND THEN
EXIT;
END;
END LOOP;
UTL_FILE.FCLOSE(f1);
END;
/
上面的 PLSQL 代码用于读取文本文件内的数据。但我不断收到此错误。
Error report -
ORA-29283: invalid file operation: nonexistent file or path [29434]
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-06512: at "SYS.UTL_FILE", line 41
ORA-06512: at "SYS.UTL_FILE", line 478
ORA-06512: at line 5
29283. 00000 - "invalid file operation%s"
*Cause: An attempt was made to read from a file or directory that does
not exist, or file or directory access was denied by the
operating system.
*Action: Verify file and directory access privileges on the file system,
and if reading, verify that the file exists.
帮我解决这个问题。预先感谢。
在目录字符串末尾添加反斜杠。你的代码对我来说可以使用反斜杠或正斜杠,但使用反斜杠可能更安全,因为这是Windows通常使用的。
CREATE OR REPLACE DIRECTORY NETTEST AS 'Z:\';