Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle PL/SQL:Ekspor Data dari Tabel ke CSV

Pelajari cara menggunakan UTL_FILE package untuk mengekspor data dari tabel ke file CSV di Oracle PL/SQL.

Di Oracle, paket UTL_FILE berisi banyak prosedur dan fungsi untuk menulis file teks. Di bawah ini adalah detail sintaks dan langkah-langkah yang diperlukan untuk menulis file:

Sintaks dan Langkah-Langkah Menulis File Menggunakan UTL_FILE

-- Declare a variable to store file type
n_file UTL_FILE.FILE_TYPE;
-- Open the file in Begin section, it will open the file and return the file handle into the variable n_file
n_file := UTL_FILE.FOPEN('DIR_OBJ', 'YourCSVFileName.csv', 'w', 4000);
-- Write a single or multiple lines
UTL_FILE.PUT_LINE(n_file, 'abc, xyz, xxx');
-- Close the file
UTL_FILE.FCLOSE(n_file);

Contoh Dasar

Declare
   n_file Utl_File.File_Type;
Begin
   -- The directory object MY_DIR must be exist or create a new one
   n_file := Utl_File.Fopen('MY_DIR', 'myfile.csv', 'w', '4000');

   Utl_File.Put_Line(n_file, 'First line.');
   Utl_File.Put_Line(n_file, 'Second line.');
   Utl_File.Put_Line(n_file, 'Third line.');

   Utl_File.Fclose(n_file);
End;

Seperti yang saya sebutkan dalam contoh di atas, objek direktori MY_DIR harus ada. Objek direktori di Oracle adalah referensi ke direktori fisik di server. Berikut ini adalah contoh membuat objek direktori di Oracle:

-- Windows example
CREATE OR REPLACE DIRECTORY CSVDIR AS 'd:\oracle\csvfiles';
-- Linux example
CREATE OR REPLACE DIRECTORY CSVDIR AS '/usr1/oracle/csvfiles';

Untuk mempelajari lebih lanjut tentang objek direktori di Oracle, periksa tautan ini.

Ekspor Data dari Tabel ke CSV di Contoh Oracle

Berikut ini adalah contoh prosedur tersimpan di Oracle, yang akan mengekspor data dari tabel EMP ke file CSV:

Create Or Replace Procedure exp_emp_data Is

    n_file     utl_file.file_type;
    v_string   Varchar2(4000);
   
  -- get the data using cursor 
  Cursor c_emp Is
    Select
        empno,
        ename,
        deptno,
        sal,
        comm
    From
        emp;

Begin
    n_file := utl_file.fopen('CSVDIR', 'empdata.csv', 'w', 4000);

-- if you do not want heading then remove below two lines
    v_string := 'Emp Code, Emp Name, Dept, Salary, Commission';
    utl_file.put_line(n_file, v_string);
    
    -- open the cursor and concatenate fields using comma
    For cur In c_emp Loop
        v_string := cur.empno
                    || ','
                    || cur.ename
                    || ','
                    || cur.deptno
                    || ','
                    || cur.sal
                    || ','
                    || cur.comm;
        
        -- write each row
        utl_file.put_line(n_file, v_string);
    End Loop;
    
    -- close the file
    utl_file.fclose(n_file);
Exception
    When Others Then
        -- on error, close the file if open
        If utl_file.is_open(n_file) Then
            utl_file.fclose(n_file);
        End If;
End;

Sekarang prosedur tersimpan Anda telah dibuat, jalankan untuk mengekspor data:

Begin
    exp_emp_data;
End;

Tutorial terkait:

  • Utilitas:Membuat Prosedur PL/SQL untuk Mengekspor Data Dari Tabel

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bagaimana memulihkan database siaga dari log arsip yang hilang

  2. Pernyataan ORACLE IIF

  3. NULLIF() Fungsi di Oracle

  4. Cara Mengganti Baris Baru di Oracle

  5. Menggunakan variabel ikat dengan klausa SELECT INTO dinamis di PL/SQL