Oracle 尝试在pl sql中写入文件时路径无效

Oracle 尝试在pl sql中写入文件时路径无效,oracle,plsql,oracle10g,Oracle,Plsql,Oracle10g,我正在尝试用oracleplsql(10g)编写一个文本文件。 我已经创建了它存在的目录,但仍然获得无效路径。 下面是代码 CREATE DIRECTORY test_dir AS 'c:\'; -- CREATE DIRECTORY test_dir AS '/tmp'; DECLARE fileHandler UTL_FILE.FILE_TYPE; BEGIN fileHandler := UTL_FILE.FOPEN('test_dir', 'test_file.txt', 'W

我正在尝试用oracleplsql(10g)编写一个文本文件。 我已经创建了它存在的目录,但仍然获得无效路径。 下面是代码

CREATE DIRECTORY test_dir AS 'c:\';
-- CREATE DIRECTORY test_dir AS '/tmp';

DECLARE
  fileHandler UTL_FILE.FILE_TYPE;
BEGIN
  fileHandler := UTL_FILE.FOPEN('test_dir', 'test_file.txt', 'W');
  UTL_FILE.PUTF(fileHandler, 'Writing TO a file\n');
  UTL_FILE.FCLOSE(fileHandler);
EXCEPTION
  WHEN utl_file.invalid_path THEN
     raise_application_error(-20000, 'ERROR: Invalid PATH FOR file.');
END;
/

the following is the error:
*
ERROR at line 1:
ORA-20000: ERROR: Invalid PATH FOR file.
ORA-06512: at line 9

Oracle区分大小写。但SQL和PL/SQL中的所有名称都会自动转换为大写,除非用双引号括起来

因此:

实际执行为:

CREATE DIRECTORY TEST_DIR AS 'c:\';
因此,您定义的目录称为
TEST\u DIR
。如果在字符串中引用它(与SQL或PL/SQL中的符号名相反),则必须使用
'TEST\u DIR'
<代码>“测试目录”不起作用

因此,请尝试:

fileHandler := UTL_FILE.FOPEN('TEST_DIR', 'test_file.txt', 'W');

数据库是否与目录在同一台PC上运行?一个常见的错误是试图在远程数据库服务器上获取utl_文件以读取本地桌面上的文件。是的,robert,我正在desktopOK上尝试此脚本,但该数据库实际上是在桌面PC上运行,还是在某个单独的数据库服务器上运行?数据库正在我的PC上运行
fileHandler := UTL_FILE.FOPEN('TEST_DIR', 'test_file.txt', 'W');