我写了一个存储过程,如下:
CREATE OR REPLACE PROCEDURE SP_TEST_XML(
ze_no in VARCHAR)
IS
path varchar2(100);
file_name VARCHAR2(50);
doc dbms_xmldom.DOMDocument;
begin
......
file_name := 'ze'||To_Char(sysdate,'yyyyMMdd')||'.xml';
path := '/u2/oracle/tmp/'||file_name;
dbms_xmlDom.writeToFile(doc,file_name,'UTF-8');
dbms_xmlDom.freeDocument(doc);
end SP_TEST_XML;
编译通过了,但是执行到dbms_xmlDom.writeToFile(doc,file_name,'UTF-8');的时候报错,错误内容如下:
ORA-29280: 目录路径无效
ORA-06512: 在"SYS.UTL_FILE", line 18
ORA-06512: 在"SYS.UTL_FILE", line 424
ORA-06512: 在"XDB.DBMS_XSLPROCESSOR", line 58
ORA-06512: 在"XDB.DBMS_XMLDOM", line 4128
ORA-06512: 在"DS.SP_TEST_XML", line 59
ORA-06512: 在line 3 在init.ora中设置了utl_file_dir=/u2/oracle/tmp,重新启动了数据库,还是报同样的错!
权限是oracle用户的权限,我看了一下,情况是这样的:
</u2/oracle>ls -l
drwxrwxr-x 2 oracle oinstall 4096 Mar 4 11:14 tmp
请高手帮我看一下,到底是怎么回事,谢谢!
CREATE OR REPLACE PROCEDURE SP_TEST_XML(
ze_no in VARCHAR)
IS
path varchar2(100);
file_name VARCHAR2(50);
doc dbms_xmldom.DOMDocument;
begin
......
file_name := 'ze'||To_Char(sysdate,'yyyyMMdd')||'.xml';
path := '/u2/oracle/tmp/'||file_name;
dbms_xmlDom.writeToFile(doc,file_name,'UTF-8');
dbms_xmlDom.freeDocument(doc);
end SP_TEST_XML;
编译通过了,但是执行到dbms_xmlDom.writeToFile(doc,file_name,'UTF-8');的时候报错,错误内容如下:
ORA-29280: 目录路径无效
ORA-06512: 在"SYS.UTL_FILE", line 18
ORA-06512: 在"SYS.UTL_FILE", line 424
ORA-06512: 在"XDB.DBMS_XSLPROCESSOR", line 58
ORA-06512: 在"XDB.DBMS_XMLDOM", line 4128
ORA-06512: 在"DS.SP_TEST_XML", line 59
ORA-06512: 在line 3 在init.ora中设置了utl_file_dir=/u2/oracle/tmp,重新启动了数据库,还是报同样的错!
权限是oracle用户的权限,我看了一下,情况是这样的:
</u2/oracle>ls -l
drwxrwxr-x 2 oracle oinstall 4096 Mar 4 11:14 tmp
请高手帮我看一下,到底是怎么回事,谢谢!
v_filepath := 'WEIHUDATA';
--v_sql:= 'create or replace directory WEIHUDATA as '/itf_ftp/upload/data';然后才能使用utl_file 包
v_sql:= 'create or replace directory WEIHUDATA as '/itf_ftp/upload/data'; 这句是写在存储过程里呢?还是写在那里?
我在sqlplus 下直接执行了:
SQL> create or replace directory WEIHUDATA as '/u2/oracle/tmp';
Directory created.
再执行存储过程还是不行呀!麻烦您详细说明,谢谢!