Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle UTL_FILE đọc các dòng tệp CSV

Đây là một ví dụ cho thấy cách thực hiện điều đó. Mã của tôi hơi khác với mã của bạn vì tên thư mục và tệp tin khác nhau.

Bảng mẫu, sẽ chứa dữ liệu được lưu trữ trong tệp:

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

Table created.

Mã số; phần thú vị là dòng 14 và cách chia toàn bộ hàng thành các giá trị riêng biệt:

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.

Kết quả:

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. Làm cách nào để sử dụng Con trỏ tham chiếu Oracle từ C # ODP.NET dưới dạng Tham số ReturnValue mà không cần sử dụng Hàm hoặc Thủ tục được Lưu trữ?

  2. Agent Decomission trong EM13c

  3. Làm cách nào để truy cập Oracle từ Python?

  4. regexp_substr bỏ qua các vị trí trống

  5. Oracle ORA-01008:không phải tất cả các biến bị ràng buộc Lỗi w / Tham số