UTL_FILE 加载文件处理

create or replace procedureloadfiledata(p_path varchar2,p_filename varchar2) as

  v_filehandle    utl_file.file_type; --定义一个文件句柄

  v_text           varchar2(100); --存放文本

  v_name           test_loadfile.name%type;  --名称

  v_addr_jd     test_loadfile.addr_jd%type;  --存储地址

  v_region         test_loadfile.region%type; --存储内容

  v_firstlocation  number;

  v_secondlocation number;

begin

  if (p_path is null or p_filename is null) then

    goto to_end;

  end if;

  /*open   specified  file*/

  v_filehandle := utl_file.fopen(p_path, p_filename, 'r'); --r:表示读的权限

  loop

          begin

            utl_file.get_line(v_filehandle, v_text);

          exception

            when no_data_found then

              exit;

          end;

           v_firstlocation := instr(v_text, ',', 1, 1);

           v_secondlocation := instr(v_text, ',', 1, 2);

           v_name           := substr(v_text, 1, v_firstlocation - 1);

           v_addr_jd        := substr(v_text, v_firstlocation + 1, v_secondlocation - v_firstlocation - 1);

           v_region         := substr(v_text, v_secondlocation + 1);

          /*插入数据库操作*/

          insert into test_loadfilevalues (v_name, v_addr_jd,v_region);

          commit;

  end loop;

  <<to_end>>

  null;

end loadfiledata;

你可能感兴趣的:(exception,File,null,存储,insert,Path)