Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak wyeksportować dane do pliku CSV w Oracle za pomocą procedury PL SQL?

Poniżej przedstawiono krok po kroku przykład eksportowania danych do pliku CSV w Oracle przy użyciu procedury PL SQL. W tym przykładzie dane są eksportowane z niektórych pól tabeli Emp schematu Scott do pliku CSV przy użyciu pakietu Oracle UTL_FILE. Wykonaj poniższe czynności, aby wyeksportować dane z tabeli bazy danych Oracle do pliku CSV.

1. Utwórz obiekt katalogu, w którym będziesz pisać plik CSV.

-- dla systemów Windows utwórz w następujący sposób zmień folder podświetlony w katalogu
CREATE OR REPLACE DIRECTORY CSVDIR AS 'd:\temp'
/
-- dla systemów Unix/Linux utwórz w następujący sposób
CREATE OR REPLACE DIRECTORY CSVDIR AS '/temp/'
/
Uwaga:Zmień lokalizację folderu na lokalizację katalogu, np. c:\abc lub /abc/.

2. Utwórz procedurę bazy danych w schemacie Scott lub jeśli tworzysz w innym schemacie, upewnij się, że masz tabelę Emp w tym schemacie, w przeciwnym razie musisz zmienić kursor i odniesienia do pól dla dowolnej innej tabeli.

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. Teraz uruchom procedurę w następujący sposób:

BEGIN
   export_to_csv;
END;
Możesz teraz sprawdzić katalog określony w poleceniu Utwórz katalog, czy plik empdata.csv musi istnieć z danymi tabeli. Stworzyłem narzędzie, które generuje procedurę online, wypróbuj:
  • Generuj procedurę PL/SQL online, aby wyeksportować dane z tabeli
  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 - Dlaczego powinienem używać pakietów zamiast samodzielnych procedur lub funkcji?

  2. Różnica między klauzulami ON i WHERE w złączeniach tabel SQL

  3. Oracle:unikatowość selektywna indeksu na podstawie funkcji

  4. Spring's Stored Procedure - wyniki powracające z procedury są zawsze puste

  5. 2 sposoby na uzyskanie dnia z randki w Oracle