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

简介: DECLARE   row_result varchar2(4000);   selectsql  varchar2(4000);   qrycursor  SYS_REFCURSOR;   txt_handle UTL_FILE.
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分割

相关文章
|
机器学习/深度学习 移动开发 Unix
如何使用UE去除复制文本中的空格、换行符和TAB
如何使用UE去除复制文本中的空格、换行符和TAB
如何使用UE去除复制文本中的空格、换行符和TAB
将文件a.txt的字符串前加上序号“1:”、“2:”、…。
将文件a.txt的字符串前加上序号“1:”、“2:”、…。
156 0
|
Oracle 关系型数据库 数据库
RMAN还原时注意set newname时文件名不要有空格
今天遇到一个非常奇怪的现象,查看ORACLE数据库的一个文件,明明这个文件是存在的,但是使用ls -lrt 查看都显示这个文件不存在。很是纳闷! 后面发现在终端输入文件名后并使用tab键时,发现文件后其实是有空格(不可见字符)。
1029 0
|
SQL 数据库
SQL去除数据库表中tab、空格、回车符等特殊字符的解决方法
原文:SQL去除数据库表中tab、空格、回车符等特殊字符的解决方法 按照ASCII码, SELECT char(64) 例如64 对应 @,则 SELECT REPLACE('abc@qq.
3831 0
|
Shell 数据库
[20180503]珅与分隔符.txt
[20180503]珅与分隔符.txt --//今天再次遇到分隔符问题,以前也遇到过做一次,链接.http://blog.itpub.net/267265/viewspace-763696/ --//这个"珅"还是许多人喜欢作为名字使用.
1130 0
|
索引 关系型数据库 Oracle
[20180329]删除带斜线的索引.txt
[20180329]删除带斜线的索引.txt --//上午看链接:http://www.itpub.net/thread-2100824-1-1.html --//开始没仔细看,实际上已经恢复了,索引名带斜线,看看如何删除.
971 0
|
Oracle 关系型数据库 Linux
[20180224]理解exp direct导出操作.txt
[20180224]理解exp direct导出操作.txt 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER -------------...
1089 0
|
SQL Oracle 关系型数据库
|
关系型数据库 Oracle 开发工具
[20170508]listagg拼接显示字段.txt
[20170508]listagg拼接显示字段.txt --//记得前一阵子,要给表增加一个字段,并赋值.采用表在线重定义.要使用函数dbms_redefinition.
891 0