Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle UTL_FILE чете CSV файлови редове

Ето един пример, който показва как да направите това. Моят код леко се различава от вашия поради различни имена на директория и файлове.

Примерна таблица, която ще съдържа данни, съхранявани във файла:

SQL> create table test2 (id number, fname varchar2(20), lname varchar2(20));

Table created.

код; интересна част е ред 14 и начинът за разделяне на целия ред на отделни стойности:

SQL> declare
  2    l_file         utl_file.file_type;
  3    l_text         varchar2(32767);
  4    l_cnt          number;
  5  begin
  6    -- Open file.
  7    l_file := utl_file.fopen('EXT_DIR', 'test2.txt', 'R', 32767);
  8
  9    loop
 10      utl_file.get_line(l_file, l_text, 32767);
 11
 12      -- L_TEXT contains the whole row; split it (by commas) into 3 values
 13      -- and insert them into the TEST2 table
 14      insert into test2 (id, fname, lname)
 15        values (regexp_substr(l_text, '[^,]+', 1, 1),
 16                regexp_substr(l_text, '[^,]+', 1, 2),
 17                regexp_substr(l_text, '[^,]+', 1, 3)
 18               );
 19    end loop;
 20
 21    utl_file.fclose(l_file);
 22  exception
 23    when no_data_found then
 24      null;
 25  end;
 26  /

PL/SQL procedure successfully completed.

Резултатът:

SQL> select * from test2;

        ID FNAME                LNAME
---------- -------------------- --------------------
       100 Steven               King
       101 Neena                Kochha
       102 Lex                  De Haan
       103 Alexander
       104 Bruce                Ernst

SQL>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как можете да разберете дали дадена стойност не е числова в Oracle?

  2. Oracle как да експортирате заявка в текстов/csv файл

  3. Как да създадете вложена таблица с помощта на потребителски дефиниран тип данни в базата данни на Oracle

  4. SQLPlus - спулиране към множество файлове от PL/SQL блокове

  5. Как да избегнем заместването на променливи в Oracle SQL Developer с "тринидад и тобаго"