sql >> Databasteknik >  >> RDS >> Oracle

Hur man exporterar data till CSV-fil i Oracle med PL SQL-proceduren

Nedan ges steg för steg exemplet för att exportera data till CSV-fil i Oracle med PL SQL-proceduren. I det här exemplet exporteras data från vissa fält i Emp table of Scott-schema till en CSV-fil med UTL_FILE Oracle-paketet. Följ stegen nedan för att exportera data från Oracle Database-tabellen till en CSV-fil.

1. Skapa ett katalogobjekt där du ska skriva en CSV-fil.

-- För Windows-system skapa enligt följande, ändra mappen som är markerad med din katalog
CREATE OR REPLACE DIRECTORY CSVDIR AS 'd:\temp'
/
-- för Unix/Linux-system skapa enligt följande
CREATE OR REPLACE DIRECTORY CSVDIR AS '/temp/'
/
Obs:Ändra mappplatsen till din katalogplats, t.ex. c:\abc eller /abc/.

2. Skapa en databasprocedur i Scott-schemat eller om du skapar i ett annat schema, se till att du har Emp-tabellen i det schemat, annars måste du ändra markören och fältreferenserna för alla andra tabeller.

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 enligt följande:

BEGIN
   export_to_csv;
END;
Du kan nu kontrollera din katalog som du angav i kommandot Skapa katalog som filen empdata.csv måste finnas med tabelldata. Jag har skapat ett verktyg som genererar proceduren online, prova det:
  • Generera PL/SQL-procedur online för att exportera data från en tabell
  1. Kan inte binda argument vid index 2 eftersom indexet ligger utanför intervallet

  2. Hur lägger man till en ny kolumn i en tabell efter den 2:a eller 3:e kolumnen i tabellen med postgres?

  3. Ingen operator matchar det angivna namnet och argumenttyp(erna). Du kan behöva lägga till explicita casts. -- Netbeans, Postgresql 8.4 och Glassfish

  4. Få en kolumn från .sqlite som innehåller flera tabeller med flera kolumner