当前位置:首页 >> 计算机软件及应用 >>

oralce输出txt效率对比


SPOOL 是 SQLPLUS 的命令,必须在 SQLPLUS 中使用,主要完成以标准输出方式输出 SQLPLUS 的命令及执行结果,一般常用户格式化导出 ORACLE 表数据 功能:把查询的结果输入到 d:\du_basis.txt sqlplus user/password@sid <<EOF set echo on; set feedback on; set trimspool off; set linesize 120; set pagesize 2000; set newpage 1; set heading on; set term off; set termout on; set timing off; spool d:\du_basis.txt; select '"'||custcode||'"'||','||custname||','||areacode||','||custaddr||','||to_nu mber(to_char(rptdate,'YYYYMMDD')) from du_basis; spool off; exit; EOF

对比:输出文本,用存储过程的方法。(速度要远快过 spool) (说明:修改目录名 DIR_ORA,导出的文件名 txt,输出的字段名,x.字段名)
CREATE OR REPLACE PROCEDURE pro_exportTxt IS export_handle UTL_FILE.file_type; BEGIN export_handle := UTL_FILE.FOPEN('DIR_ORA', 'tem.txt', 'w');

UTL_FILE.PUT_LINE(export_handle, 'ADUSER,EMPLID,NAMES,DESCR254,POSN_DESCR,STATUS,LEAD_EMPLOYEE,LEAD_NA MES,lead_ADuser'); FOR x IN (select * from ucr_crm3.TF_F_CUST_PERSON_1114 where rownum<10000) LOOP UTL_FILE.PUT_LINE(export_handle, x.partition_id || ',' || x.cust_id); END LOOP; UTL_FILE.FCLOSE(export_handle); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM, 1, 2000)); END;

测试:输出 10000 行的数据,只有 0.01 秒。


赞助商链接
相关文章:
更多相关标签: