utl_file包

来源:互联网 发布:淘宝怎么刷关键词 编辑:程序博客网 时间:2024/04/30 15:01
1、创建读、写目录并授权


SQL> CREATE DIRECTORY READ_DIR AS 'F:\READ_DIR';
Directory created


SQL> CREATE DIRECTORY WRITE_DIR AS 'F:\WRITE_DIR';
Directory created


SQL> GRANT READ ON DIRECTORY READ_DIR TO PUBLIC;
Grant succeeded


SQL> GRANT WRITE ON DIRECTORY WRITE_DIR TO PUBLIC;
Grant succeeded


2、utl_file.fcopy  复制
utl_file.fcopy(
                 src_location,  --源位置
                 src_filename,  --源文件名
                 dest_location, --目的地位置
                 dest_filename, --目的地文件名
                 [start_line],  --起始行 默认1 
                 [end_line]     --结束行 
              )
实例:
BEGIN
  utl_file.fcopy('READ_DIR','1.txt','WRITE_DIR','b.txt',2,3);
END;


2、utl_file.fopen 打开文件,返回一个文件句柄
utl_file.fopen( 
                LOCATION, 
                filename,
                open_mode, 
                [max_linesize] 
               ) 
RETURN <file_type_package_data_type;
open_mode:
  A:Append Text
  R:Read Text
  W:Write Text
3、utl_file.get_line  从指定文件读取一行数据
utl_file.get_line(
                   FILE,    --utl_file.file_type
                   BUFFER,  --varchar2
                   [LEN]
                  )
4、utl_file.fclose    关闭指定文件
   utl_file.fclose(
                    FILE    --utl_file.file_type
                   )


实例:
DECLARE
  Readfile utl_file.file_type;              
  strLine VARCHAR2(1000);  
BEGIN
  Readfile:=utl_file.fopen('READ_DIR','1.txt','R');
  LOOP
    BEGIN
      utl_file.get_line(readfile,strline);
      dbms_output.put_line(strline);
    EXCEPTION
      WHEN OTHERS THEN 
        EXIT;
    END;
  END LOOP;
END;


5、utl_file.put_line 向指定文件写入一行数据
  utl_file.put_line(
                      FILE ,     --file_type
                      BUFFER,    --varchar2
                      autoflush  --boolean
                    )
6、utl_file.put  向指定文件写入一个字符串
   utl_file.put(
                  FILE --utl_file.file_type,
                  BUFFER --varchar2
               )


实例:
DECLARE
  Readfile utl_file.file_type;              
  strLine VARCHAR2(1000);  
BEGIN
  Readfile:=utl_file.fopen('READ_DIR','2.txt','A');
  /*LOOP
    BEGIN
      utl_file.get_line(readfile,strline);
      dbms_output.put_line(strline);
    EXCEPTION
      WHEN OTHERS THEN 
        EXIT;
    END;
  END LOOP;*/
  utl_file.put_Line(readfile,'aaa');
  utl_file.put(readfile,'bbb');
  utl_file.put(readfile,'ccc');
  utl_file.put(readfile,'ddd');
  utl_file.fclose(readfile);
END;
0 0
原创粉丝点击