sql >> Databáze >  >> RDS >> Oracle

Jak exportovat data do souboru CSV v Oracle pomocí PL SQL procedury

Níže je uveden krok za krokem příklad exportu dat do souboru CSV v Oracle pomocí PL SQL procedury. V tomto příkladu se exportují data z některých polí Emp tabulky schématu Scott do souboru CSV pomocí balíčku Oracle UTL_FILE. Chcete-li exportovat data z tabulky databáze Oracle do souboru CSV, postupujte podle níže uvedených kroků.

1. Vytvořte adresářový objekt, do kterého zapíšete soubor CSV.

-- pro systémy Windows vytvořte následovně změňte složku zvýrazněnou vaším adresářem
CREATE OR REPLACE DIRECTORY CSVDIR AS 'd:\temp'
/
-- pro systémy Unix/Linux vytvořte následovně
CREATE OR REPLACE DIRECTORY CSVDIR AS '/temp/'
/
Poznámka:Změňte umístění složky na umístění vašeho adresáře, např. c:\abc nebo /abc/.

2. Vytvořte proceduru databáze ve schématu Scott nebo pokud vytváříte v jiném schématu, ujistěte se, že máte tabulku Emp v tomto schématu, jinak musíte změnit kurzor a odkazy na pole pro jakoukoli jinou tabulku.

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. Nyní spusťte postup následovně:

BEGIN
   export_to_csv;
END;
Nyní můžete zkontrolovat svůj adresář, který jste zadali v příkazu Create Directory, že soubor empdata.csv musí existovat s daty tabulky. Vytvořil jsem nástroj, který generuje postup online, zkuste to:
  • Vygenerujte online proceduru PL/SQL pro export dat z tabulky
  1. ZDLRA – RMAN-20035 neplatná vysoká RECID

  2. Jaký je nejelegantnější způsob, jak uložit časové razítko s nanosec v postgresql?

  3. Export tabulky z databáze do souboru csv

  4. COUNT() vs COUNT_BIG() na SQL Server:Jaký je rozdíl?