Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да експортирате данни в CSV файл в Oracle с помощта на PL SQL процедура

По-долу е даден пример стъпка по стъпка за експортиране на данни в CSV файл в Oracle с помощта на PL SQL процедура. В този пример данните се експортират от някои полета на Emp таблица на схемата на Scott към CSV файл с помощта на UTL_FILE пакет на Oracle. Следвайте стъпките по-долу, за да експортирате данни от таблицата на Oracle Database в CSV файл.

1. Създайте обект на директория, в който ще пишете CSV файл.

-- за Windows системи създайте, както следва, променете папката, маркирана с вашата директория
CREATE OR REPLACE DIRECTORY CSVDIR AS 'd:\temp'
/
-- за Unix/Linux системи създайте както следва
CREATE OR REPLACE DIRECTORY CSVDIR AS '/temp/'
/
Забележка:Променете местоположението на папката на местоположението на вашата директория, например c:\abc или /abc/.

2. Създайте процедура за база данни в схема на Scott или ако създавате в друга схема, тогава се уверете, че имате таблицата Emp в тази схема, в противен случай трябва да промените курсора и препратките на полето за всяка друга таблица.

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. Сега изпълнете процедурата, както следва:

BEGIN
   export_to_csv;
END;
Вече можете да проверите вашата директория, която сте посочили в командата Create Directory, че файлът empdata.csv трябва да съществува с данните от таблицата. Създадох помощна програма, която генерира процедурата онлайн, опитайте я:
  • Генерирайте PL/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. Защо няма изход, когато PLSQL Anonymous блок завърши?

  2. Oracle DB Server + APEX + ORDS + JasperReports от нулата (Част 4)

  3. Какво не е наред с този PL/SQL? Променливата за свързване * НЕ СЕ ДЕКЛАРИРА

  4. Хибернация на оракул, @GeneratedValue(strategy =GenerationType.AUTO)

  5. Как да интегрирате Oracle и Kafka