1. 首页
  2. IT资讯

使用 UTL_FILE导出TAB和逗号分割数据

DECLARE
  row_result varchar2(4000);
  selectsql  varchar2(4000);
  qrycursor  SYS_REFCURSOR;
  txt_handle UTL_FILE.file_type;
BEGIN
  selectsql  := ‘select USER_ID||chr(9)||EXTERNAL_ID||chr(9)||ACCOUNT_ID||chr(9)||CERTIFY_STATUS||chr(9)||USER_STATUS||chr(9)||RUNTIME_STATUS||chr(9)||USER_NAME||chr(9)||REAL_NAME||chr(9)||COUNTRY||chr(9)||GENDER||chr(9)||PROFESSION||chr(9)||ADDRESS||chr(9)||PHONE||chr(9)||MOBILE||chr(9)||EMAIL||chr(9)||CERT_TYPE||chr(9)||CERT_NO||chr(9)||LICENSE_VALID_TIME||chr(9)||REGISTER_FROM||chr(9)||ORIGIN_REGISTER_FROM||chr(9)||RAW_ADD_TIME||chr(9)||RAW_UPDATE_TIME||chr(9)||BANK_CARD_NO||chr(9)||BANK_CARD_TYPE||chr(9)||NAME||chr(9)||BANK_CERT_NO from yhcheck.til_per’;
  txt_handle := UTL_FILE.FOPEN(‘TESTDIR’, ‘b.txt’, ‘w’,32767);
  open qrycursor for selectsql;
  loop
    fetch qrycursor
      into row_result;
    exit when qrycursor%notfound;
    UTL_FILE.PUT_LINE(txt_handle, row_result);
  end loop;
  –关闭游标    
  close qrycursor;
  UTL_FILE.FCLOSE(txt_handle);
end;

逗号分隔
DECLARE
  row_result varchar2(4000);
  selectsql  varchar2(4000);
  qrycursor  SYS_REFCURSOR;
  txt_handle UTL_FILE.file_type;
BEGIN
  selectsql  := ‘select id || ”,” || name || ”,” || dti
  from testdump
 where name = ”gaopeng”
   and dti > to_date(”2015-03-17 00:00:00”, ”yyyy-mm-dd hh24:mi:ss”)’;
  txt_handle := UTL_FILE.FOPEN(‘DATA_PUMP_DIR’, ‘b.txt’, ‘w’, 32767);
  open qrycursor for selectsql;
  loop
    fetch qrycursor
      into row_result;
    exit when qrycursor%notfound;
    UTL_FILE.PUT_LINE(txt_handle, row_result);
  end loop;
  –关闭游标    
  close qrycursor;
  UTL_FILE.FCLOSE(txt_handle);
end;

注意点 1:‘w’可以更改为’a’为追加
         2:
32767为每行的宽度,默认为1024
         3:
TESTDIR为大写是 CREATE DIRECTORY建立的目录
         4: chr(9) 为TAB分割

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7728585/viewspace-1547728/,如需转载,请注明出处,否则将追究法律责任。

主题测试文章,只做测试使用。发布者:深沉的少年,转转请注明出处:http://www.cxybcw.com/183798.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code