Oracle 导出数据到csv

来源:这里教程网 时间:2026-03-03 16:46:30 作者:
DECLARE
  CURSOR c_data IS
    SELECT empno,
           ename,
           job,
           mgr,
           TO_CHAR(hiredate,'DD-MON-YYYY') AS hiredate,
           sal,
           comm,
           deptno
    FROM   emp
    ORDER BY ename;
    
  v_file  UTL_FILE.FILE_TYPE;
BEGIN
  v_file := UTL_FILE.FOPEN(location     => 'EXTRACT_DIR',
                           filename     => 'emp_csv1.csv',
                           open_mode    => 'w',
                           max_linesize => 32767);
    UTL_FILE.PUT_LINE(v_file,
                      'empno'    || ',' ||
                      'ename'    || ',' ||
                      'job'      || ',' ||
                      'mgr'      || ',' ||
                      'hiredate' || ',' ||
                      'empno'    || ',' ||
                      'sal'      || ',' ||
                      'comm'     || ',' ||
                      'deptno'); 
  FOR cur_rec IN c_data LOOP
    UTL_FILE.PUT_LINE(v_file,
                      cur_rec.empno    || ',' ||
                      cur_rec.ename    || ',' ||
                      cur_rec.job      || ',' ||
                      cur_rec.mgr      || ',' ||
                      cur_rec.hiredate || ',' ||
                      cur_rec.empno    || ',' ||
                      cur_rec.sal      || ',' ||
                      cur_rec.comm     || ',' ||
                      cur_rec.deptno);
  END LOOP;
  UTL_FILE.FCLOSE(v_file);
  
EXCEPTION
  WHEN OTHERS THEN
    UTL_FILE.FCLOSE(v_file);
    RAISE;
END;
/

相关推荐