utl_file_dir已经家好权限,但是写文件的时候还是无效的路径,是不是客户端和服务器端分开的问题?
Out_File := UTL_FILE.FOPEN('D:\FILE',FileName, 'a');

解决方案 »

  1.   

    要把文件先传到oracle服务器上。
      

  2.   

    utl_file_dir的路径是SERVER端的。
      

  3.   

    那我客户端怎么能操作服务器端,在服务器端写文件呢?
    还有个问题
    Out_File   :=   UTL_FILE.FOPEN('D:\FILE',FileName,   'a');
    这句代码,如果D:\FILE下没有FileName定义的那个文件,他是不是就不能写进去拉?必须先创建文件嘛?
    还是如果有文件它就追加,没有这个文件,它就新建在追加?
      

  4.   

    在整理一下问题
    我在客户端运行代码,想给服务器段生成txt文件,我该如何操作?
    服务器端utl_file_dir已经设置好了
    我运行
    Out_File   :=   UTL_FILE.FOPEN('D:\FILE',FILENAME,'W');
    错误结果看贴图
      

  5.   

    可能的原因:
    进行写操作时,没有文件会新建文件,但文件夹必须存在,所以路径一定要正确。如果oracle版本在9I以前,要先设utl_file_dir初始化参数。用"CREATE DIRECTORY"先建个目录试试。 
      

  6.   

    UTL_FILE.FOPEN('D:\FILE',FILENAME,'W'); 
    ===========================================
    第一个参数应该是 oracle 的 directory 对象,所以你应该先create directory your_dir_name as 'd:\file';然后,在 fopen() 中使用 your_dir_name