create or replace procedure exp_dist(orgid varchar2,sys_date date)
is
   CURSOR C_CURSOR IS
                select '03',acct_id,fund_id,dist_type,org_id from dist_reg b where b.org_id=orgid;
        RET_CURSOR C_CURSOR%ROWTYPE;
        FHANDLE  UTL_FILE.FILE_TYPE;begin
     FHANDLE := UTL_FILE.FOPEN('d:\temp', 'test.txt', 'a');
     UTL_FILE.PUT_LINE(FHANDLE,'03||acct_id||fund_id||dist_type||org_id');
     open C_CURSOR;
     loop
        FETCH C_CURSOR
                        INTO RET_CURSOR;        
                EXIT WHEN C_CURSOR%NOTFOUND;
                UTL_FILE.PUT(FHANDLE, '03' ); 
                UTL_FILE.PUT(FHANDLE, RET_CURSOR.acct_id ); 
                UTL_FILE.PUT(FHANDLE, RET_CURSOR.fund_id ); 
                UTL_FILE.PUT(FHANDLE, RET_CURSOR.dist_type); 
                UTL_FILE.PUT(FHANDLE, RET_CURSOR.org_id); 
                UTL_FILE.PUT_LINE(FHANDLE,'');
        END LOOP;
UTL_FILE.FCLOSE(FHANDLE);
        CLOSE C_CURSOR;        
EXCEPTION
        WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE(SQLERRM );
               
        
END;
为了把数据导入到文本,我写了这个存储过程,不用脚本是有原因的,我只好采用这种方法,但是执行到下面就
FHANDLE := UTL_FILE.FOPEN('d:\temp', 'test.txt', 'a');执行到这一步出错,utl_file_dir设置成*了。
然后跳到DBMS_OUTPUT.PUT_LINE(SQLERRM );
请问各位高手有什么指教,错在哪里?谢谢!