Oracle UTL_FILE 读写文件

select * from all_directories;--查看创建的目录

drop directory my_dir;--删除目录

create or replace directory exp_dir as '/tmp'; --创建目录

grant read, write on directory exp_dir to xe; --授权


CREATE OR REPLACE PROCEDURE test_club  IS

--
   v_module_name VARCHAR2(35) := 'Daily_Settlement_Deskbank_File';
   v_transacationtnr NUMBER := 1;
   v_downloaddate varchar2(10) := to_char(sysdate, 'DDMMYYYY');
   v_transactiondate varchar2(10) := to_char(sysdate, 'DDMMYYYY');
   v_date varchar2(10) := to_char(sysdate,'DDMMYYYY');
   file_handle utl_file.file_type;
  write_content VARCHAR2(1024);
  write_file_name VARCHAR2(50);
     CURSOR c_fliter_transaction IS
 select *    from club fts;


   BEGIN
     write_file_name := 'fss_'||to_char(SYSDATE,'YYYYMMDD')||'.txt';
   file_handle := utl_file.fopen('D_OUTPUT',write_file_name,'w');
     FOR ft in c_fliter_transaction loop




   write_content := ft.ORGID||'|'||nvl(ft.ORGNAME,' ')||'|'||nvl(ft.PHONE,' ')||'|'||nvl(ft.STREETADDRESS,' ')||'|'||nvl(ft.CITY,' ')||'|'||nvl(ft.STATE,' ')||'|'||nvl(ft.POSTCODE,0)||'|'||nvl(ft.COUNTRY,' ')||'|'||nvl(ft.NEWS,' ');
  
 IF utl_file.is_open(file_handle) THEN
    utl_file.put_line(file_handle,write_content);
    end if;
   
    END LOOP;
     
    utl_file.fclose(file_handle);
  dbms_output.put_line('the deskbank file finish.');
END;






SELECT REGEXP_SUBSTR ('909,University of Southern Tasmania,213-740-1111,University Park,Hobart,CA,89,AUS,The Los Angeles Times','[^,]+', 1,rownum) FROM DUAL


 CONNECT BY ROWNUM <= LENGTH ('909,University of Southern Tasmania,213-740-1111,University Park,Hobart,CA,89,AUS,The Los Angeles Times') - LENGTH (REPLACE ('909,University of Southern Tasmania,213-740-1111,University Park,Hobart,CA,89,AUS,The Los Angeles Times', ',', ''))+1;


select * from table(split('909,University of Southern Tasmania,213-740-1111,University Park,Hobart,CA,89,AUS,The Los Angeles Times',','));


CREATE OR REPLACE PROCEDURE read_club  IS
--
   v_module_name VARCHAR2(35) := 'Daily_Settlement_Deskbank_File';
   v_transacationtnr NUMBER := 1;
   v_downloaddate varchar2(10) := to_char(sysdate, 'DDMMYYYY');
   v_transactiondate varchar2(10) := to_char(sysdate, 'DDMMYYYY');
   v_date varchar2(10) := to_char(sysdate,'DDMMYYYY');
   file_handle utl_file.file_type;
  read_content VARCHAR2(1024);
  write_file_name VARCHAR2(50);
     CURSOR c_fliter_transaction IS
 select *    from club fts;


   BEGIN
     write_file_name := 'fss_'||to_char(SYSDATE,'YYYYMMDD')||'.txt';
   file_handle := utl_file.fopen('D_OUTPUT',write_file_name,'r');
     FOR ft in c_fliter_transaction loop


 IF utl_file.is_open(file_handle) THEN
    utl_file.get_line(file_handle,read_content);
    end if;


 --  SELECT REGEXP_SUBSTR ('909,University of Southern Tasmania,213-740-1111,University Park,Hobart,CA,89,AUS,The Los Angeles Times','[^,]+', 1,3) FROM DUAL;
  -- read_content := ft.ORGID||','||ft.ORGNAME||','||ft.PHONE||','||ft.STREETADDRESS||','||ft.CITY||','||ft.STATE||','||ft.POSTCODE||','||ft.COUNTRY||','||ft.NEWS;
  insert into club1 values (REGEXP_SUBSTR(read_content,'[^|]+', 1,1),REGEXP_SUBSTR(read_content,'[^|]+', 1,2),REGEXP_SUBSTR(read_content,'[^|]+', 1,3),REGEXP_SUBSTR(read_content,'[^|]+', 1,4),REGEXP_SUBSTR(read_content,'[^|]+', 1,5),REGEXP_SUBSTR(read_content,'[^|]+', 1,6),REGEXP_SUBSTR(read_content,'[^|]+', 1,7),REGEXP_SUBSTR(read_content,'[^|]+', 1,8),REGEXP_SUBSTR(read_content,'[^|]+', 1,9));
commit;
    END LOOP;
     
    utl_file.fclose(file_handle);
  dbms_output.put_line('the deskbank file finish.');
END;

猜你喜欢

转载自blog.csdn.net/m53167894/article/details/80504156