zoukankan      html  css  js  c++  java
  • Using Text_IO To Read Files in Oracle D2k

    Suppose you want to read a file from D2k client and want to store its content in Oracle database. But if you will insert row by row from client to server it will take more time and increase lot of network traffic / round trips.

    The solution of this problem is to store the content of the text file into an array and then pass it to database procedure and insert record through that procedure. Here is the example step by step:

    1)  Create a package in Oracle database.

    Create or Replace Package DB_insert
    as
    Type textrow is table of Varchar2(1000)
        index by binary_integer;

    Procedure Insert_into_table (iarray in textrow);
    End;
    /

    Create or Replace Package Body DB_insert 
    as
    Procedure Insert_into_table(iarray in textrow)
    is
    Begin
       For i in 1..iarray.count loop
           Insert into Dummytbl values (iarray(i));
           -- you can extract the content from iarray(i) to insert values into multiple fields
           -- e.g. iarray(i).fieldname
           --
       End Loop;
    Commit;
    End;
    /
    2)   Now in D2k write a procedure to read text file and store it into array and pass it to that package you crated above.
    Procedure Read_File (ifilename in Varchar2)
    is
    infile Text_IO.File_type;
    irow DB_insert.textrow; 
    nelm number := 1;
    Begin
       infile := text_io.fopen(ifilename, 'r');
    Loop
         text_io.get_line(infile, irow(nelm));
         nelm := nelm + 1;
    End Loop;
    Exception
       when no_data_found then
         -- end of file reached
        text_io.fclose(infile);
       message('Read Completed.'); 
       -- pass it to database
       DB_insert.insert_into_table(irow);
      message('Data saved.');
      when others then
        if text_io.is_open(infile) then
           text_io.fclose(infile);
        end if;
       message(sqlerrm);   
    End;
    See also: Reading csv files with Text_io
    http://foxinfotech.blogspot.com/2013/02/reading-and-importing-comma-delimited.html
       

  • 相关阅读:
    疯狂学java的第七天
    疯狂学java的第六天
    疯狂学java的第五天
    学java的第四天
    学java的第三天
    javaSE_20_常用API(包装类丶BigInteger类丶BigDecimal类 )
    javaSE_19_常用API(String类丶StringBuffer类)
    javaSE_17_内部类丶常用的引用类型用法总结
    javaSE_15_package和import丶访问控制权限
    javaSE_14_抽象类丶接口
  • 原文地址:https://www.cnblogs.com/quanweiru/p/6220346.html
Copyright © 2011-2022 走看看