我第一步是:
CREATE OR REPLACE DIRECTORY dir_export AS 'd:\oracle';
第二步:
GRANT read,write ON directory dir_export TO system; 
第三步:
CREATE OR REPLACE PROCEDURE SP_JOBS_DATA_OUT(p_file_name varchar2)
as
TYPE job_record_type is RECORD(username dba_users.username%TYPE,
userid dba_users.user_id%TYPE);
job_rec job_record_type;
CURSOR c_jobs IS
      select        username||chr(9),
                    user_id
                         FROM    dba_users;
l_file utl_file.file_type;
BEGIN
    l_file :=utl_file.fopen('dir_export',p_file_name,'w');
    utl_file.put_line(l_file,'jobs表导出数据');
        OPEN c_jobs;
        LOOP
        FETCH  c_jobs INTO  job_rec.username  , job_rec.userid  ;
                  EXIT WHEN c_jobs%NOTFOUND;
                utl_file.put(l_file,job_rec.username );
                utl_file.put(l_file,job_rec.userid);
                END LOOP;
                  CLOSE  c_jobs;
                  utl_file.fflush(l_file);
                  utl_file.fclose(l_file);
                 EXCEPTION
                 WHEN others THEN
                  IF utl_file.is_open(l_file) THEN
                  utl_file.fclose(l_file);
                  END IF;
                 END;
第四步,SQL> execute SP_JOBS_DATA_OUT('test.xls')
 
PL/SQL procedure successfully completed
都成功就是没有产生文件,也没有报任何错误.烦请高手指教,否则要走人了.