修改init.ora文件中的utl_file_dir参数跟此一致
重新启动数据库。

解决方案 »

  1.   

    如下存储过程:CREATE OR REPLACE PROCEDURE XXXXXXX
    IS         
      cursor c1 is
             select * from aaa;
      FILE_HANDLE UTL_FILE.FILE_TYPE;
    BEGIN
    FILE_HANDLE:=UTL_FILE.FOPEN( '\\youip\ your path ','test.txt','W');
    for ret_1 in c1
        loop
            UTL_FILE.put_line(FILE_HANDLE,ret_1.id||','||ret_1.name);
        end loop;
    UTL_FILE.FCLOSE(FILE_HANDLE);
    END;其中
    FILE_HANDLE:=UTL_FILE.FOPEN(\\youip\ your path,'test.txt','W');
    中的参数分别表示为  被操作的文件在数据库服务器端的具体路径
                        被操作的文件的名字
                        对此文件的操作模式
    UTL_FILE.put_line(FILE_HANDLE,'HELLO');
    中的参数分别表示为  文件句柄
                        写入的内容
    UTL_FILE.FCLOSE(FILE_HANDLE);
    关闭文件
    在数据库服务器端的相应配置
    1、 INIT.ORA加入参数UTL_FILE_dir='\\youip\ your path '
    2、 停止oracle的相关服务,点击服务的属性页,选择“登录”tab,把登陆身份由“本地系统账户”修改成服务器管理员用户、以及相应的密码。确定后重起服务。把相关的服务都作相应的处理。
    3、 授予system用户对UTL_FILE包有可执行权限。
    GRANT EXECUTE ON  utl_file TO DBuser(你的连接数据库的用户);