sql >> Database teknologi >  >> RDS >> Oracle

Sådan eksporteres data til CSV-fil i Oracle ved hjælp af PL SQL-procedure

Nedenfor er trin for trin eksemplet givet for at eksportere data til CSV-fil i Oracle ved hjælp af PL SQL-procedure. I dette eksempel eksporteres data fra nogle felter i Emp table of Scott-skema til en CSV-fil ved hjælp af UTL_FILE Oracle-pakke. Følg nedenstående trin for at eksportere data fra Oracle-databasetabellen til en CSV-fil.

1. Opret et biblioteksobjekt, hvor du vil skrive CSV-fil.

-- For Windows-systemer, opret som følgende, skift mappen, der er fremhævet med din mappe
CREATE OR REPLACE DIRECTORY CSVDIR AS 'd:\temp'
/
-- for Unix/Linux-systemer skal du oprette som følgende
CREATE OR REPLACE DIRECTORY CSVDIR AS '/temp/'
/
Bemærk:Skift mappeplacering til din mappeplacering, f.eks. c:\abc eller /abc/.

2. Opret en databaseprocedure i Scott-skema, eller hvis du opretter i et andet skema, så sørg for, at du har Emp-tabellen i det skema, ellers skal du ændre markøren og feltreferencerne for enhver anden tabel.

CREATE OR REPLACE PROCEDURE export_to_csv
IS
   v_file     UTL_FILE.file_type;
   v_string   VARCHAR2 (4000);

   CURSOR c_emp
   IS
      SELECT empno,
             ename,
             deptno,
             sal,
             comm
        FROM emp;
BEGIN
   v_file :=
      UTL_FILE.fopen ('CSVDIR',
                      'empdata.csv',
                      'w',
                      1000);

   -- if you do not want heading then remove below two lines
   v_string := 'Emp Code, Emp Name, Dept, Salary, Commission';
   UTL_FILE.put_line (v_file, v_string);

   FOR cur IN c_emp
   LOOP
      v_string :=
            cur.empno
         || ','
         || cur.ename
         || ','
         || cur.deptno
         || ','
         || cur.sal
         || ','
         || cur.comm;

      UTL_FILE.put_line (v_file, v_string);

   END LOOP;
   UTL_FILE.fclose (v_file);

EXCEPTION
   WHEN OTHERS
   THEN
      IF UTL_FILE.is_open (v_file)
      THEN
         UTL_FILE.fclose (v_file);
      END IF;
END;

3. Kør nu proceduren som følger:

BEGIN
   export_to_csv;
END;
Du kan nu kontrollere dit bibliotek, du har angivet i kommandoen Create Directory, som filen empdata.csv skal eksistere med tabeldataene. Jeg har oprettet et hjælpeprogram, som genererer proceduren online prøv det:
  • Generer PL/SQL-procedure online for at eksportere data fra en tabel
  1. MySQL datoformat DD/MM/ÅÅÅÅ vælge forespørgsel?

  2. SQL VÆLG IN

  3. Android SQLite problem - tabel ... har ingen kolonne navngivet

  4. Fejl under afsendelse af QUERY-pakke