用System用户创建了一个目录
create directory test_dir as 'e:\develop\';
grant read,write on directory test_dir to scott;用Scott用户登录后:
declare
src clob;
xmlfile UTL_FILE.FILE_TYPE;
length integer;
buffer varchar2(16384);
begin
src :=dbms_xmlquery.getXml('select * from emp');
length :=dbms_lob.getlength(src);
dbms_lob.read(src,length,1,buffer);
xmlfile :=utl_file.fopen('TEST_DIR','employees.xml','w');
utl_file.put(xmlfile,buffer);
utl_file.fclose(xmlfile);
EXCEPTION
WHEN utl_file.invalid_mode THEN
RAISE_APPLICATION_ERROR (-20051, 'Invalid Mode Parameter');
WHEN utl_file.invalid_path THEN
RAISE_APPLICATION_ERROR (-20052, 'Invalid File Location');
WHEN utl_file.invalid_filehandle THEN
RAISE_APPLICATION_ERROR (-20053, 'Invalid Filehandle');
WHEN utl_file.invalid_operation THEN
RAISE_APPLICATION_ERROR (-20054, 'Invalid Operation');
WHEN utl_file.read_error THEN
RAISE_APPLICATION_ERROR (-20055, 'Read Error');
WHEN utl_file.internal_error THEN
RAISE_APPLICATION_ERROR (-20057, 'Internal Error');
WHEN utl_file.charsetmismatch THEN
RAISE_APPLICATION_ERROR (-20058, 'Opened With FOPEN_NCHAR
But Later I/O Inconsistent');
-- WHEN utl_file.file_open THEN
-- RAISE_APPLICATION_ERROR (-20059, 'File Already Opened');
WHEN utl_file.invalid_maxlinesize THEN
RAISE_APPLICATION_ERROR(-20060,'Line Size Exceeds 32K');
-- WHEN utl_file.invalid_filename THEN
-- RAISE_APPLICATION_ERROR (-20061, 'Invalid File Name');
-- WHEN utl_file.access_denied THEN
-- RAISE_APPLICATION_ERROR (-20062, 'File Access Denied By');
-- WHEN utl_file.invalid_offset THEN
-- RAISE_APPLICATION_ERROR (-20063,'FSEEK Param Less Than 0');
WHEN others THEN
RAISE_APPLICATION_ERROR (-20099, 'Unknown UTL_FILE Error'); end;执行后出现异常 utl_file.invalid_path 结果是如下:
declare
*
ERROR 位于第 1 行:
ORA-20052: Invalid File Location
ORA-06512: 在line 17请高手帮忙,实在找不到错误在哪里啊!!!!!!!
create directory test_dir as 'e:\develop\';
grant read,write on directory test_dir to scott;用Scott用户登录后:
declare
src clob;
xmlfile UTL_FILE.FILE_TYPE;
length integer;
buffer varchar2(16384);
begin
src :=dbms_xmlquery.getXml('select * from emp');
length :=dbms_lob.getlength(src);
dbms_lob.read(src,length,1,buffer);
xmlfile :=utl_file.fopen('TEST_DIR','employees.xml','w');
utl_file.put(xmlfile,buffer);
utl_file.fclose(xmlfile);
EXCEPTION
WHEN utl_file.invalid_mode THEN
RAISE_APPLICATION_ERROR (-20051, 'Invalid Mode Parameter');
WHEN utl_file.invalid_path THEN
RAISE_APPLICATION_ERROR (-20052, 'Invalid File Location');
WHEN utl_file.invalid_filehandle THEN
RAISE_APPLICATION_ERROR (-20053, 'Invalid Filehandle');
WHEN utl_file.invalid_operation THEN
RAISE_APPLICATION_ERROR (-20054, 'Invalid Operation');
WHEN utl_file.read_error THEN
RAISE_APPLICATION_ERROR (-20055, 'Read Error');
WHEN utl_file.internal_error THEN
RAISE_APPLICATION_ERROR (-20057, 'Internal Error');
WHEN utl_file.charsetmismatch THEN
RAISE_APPLICATION_ERROR (-20058, 'Opened With FOPEN_NCHAR
But Later I/O Inconsistent');
-- WHEN utl_file.file_open THEN
-- RAISE_APPLICATION_ERROR (-20059, 'File Already Opened');
WHEN utl_file.invalid_maxlinesize THEN
RAISE_APPLICATION_ERROR(-20060,'Line Size Exceeds 32K');
-- WHEN utl_file.invalid_filename THEN
-- RAISE_APPLICATION_ERROR (-20061, 'Invalid File Name');
-- WHEN utl_file.access_denied THEN
-- RAISE_APPLICATION_ERROR (-20062, 'File Access Denied By');
-- WHEN utl_file.invalid_offset THEN
-- RAISE_APPLICATION_ERROR (-20063,'FSEEK Param Less Than 0');
WHEN others THEN
RAISE_APPLICATION_ERROR (-20099, 'Unknown UTL_FILE Error'); end;执行后出现异常 utl_file.invalid_path 结果是如下:
declare
*
ERROR 位于第 1 行:
ORA-20052: Invalid File Location
ORA-06512: 在line 17请高手帮忙,实在找不到错误在哪里啊!!!!!!!
解决方案 »
- 求大家给个conoug的邀请码
- Oracle biee学习资料
- 数据库脚本部署安装(ORACLE)
- 这个SQL可以优化一下吗?
- 请教,在这样的情况下如何SQL查询语句才能使查询效率更高!
- 一个中文汉字,在ORACLE中到底占几个字节?
- 9i安装后,Enterprise Manager Console 不能启动,请各位给小弟解惑
- 为什么在连接数据库,sqlplus的时候,总是提示没有侦听器?
- 帮忙
- 我和同事合写的<SQL Studio数据库集成管理工具>,使程序员免受SQL Plus之苦,需要的发E-mail给我 [email protected]
- 請問ORACLE字符集名稱列表哪里有?
- 各位兄弟帮个忙!!
TEST_DIR : 小写;
fopen 中 大小写敏感