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

Crea un foglio di calcolo Excel da un database Oracle

Suppongo che il problema sia, quanto è complessa la tua "struttura complessa"?

Gli IDE di programmazione come Oracle SQL Developer o Quest TOAD dispongono di procedure guidate per esportare tabelle di dati in file CSV.

Se vuoi unire i dati di più tabelle puoi usare una vista o anche scrivere un'istruzione SQL

select e.ename||','||d.dname
from   emp e
       join dept d on ( e.deptno = d.deptno )
/

(ricordando che le colonne possono spesso contenere dati che includono virgole, quindi potresti voler utilizzare un carattere più insolito - o un insieme di caratteri - come separatore.)

Un altro modo rapido per fare qualcosa è usare la funzione di report HTML di SQL*Plus. Molti strumenti per fogli di calcolo possono importare HTML e XML ben strutturati senza uno snatch. Scopri di più.

Se vuoi appiattire una struttura gerarchica o qualcosa di ancora più contorto, probabilmente dovrai spostarti in PL/SQL. Un approccio manuale utilizzerebbe una variante dell'istruzione precedente adattata per utilizzare UTL_FILE:

declare
    csv_fh  utl_file.filetype;
begin
    csv_fh := utl_file.fopen('C:\temp', 'data_export.csv', 'W');
    for r in   (  select e.ename, d.dname
                  from   emp e
                  join dept d on ( e.deptno = d.deptno )
                ) loop
        utl_file.put_line(csv_fh, r.ename||'|'||r.dname;
    end loop;
    utl_file.fclose(csv_fh);
end;

Se desideri esportare in modo specifico in Excel (ad esempio un file .XLS), dovrai andare oltre i built-in di Oracle. La solita soluzione per esportare direttamente da PL/SQL a Excel è il wrapper OWA_SYLK di Tom Kyte per l'API SYLK. Scopri di più.

Funziona con fogli di lavoro singoli. Se desideri esportare su più fogli di lavoro, ci sono un paio di soluzioni alternative.

Sanjeev Sapre ha il suo pacchetto get_xl_xml. Come suggerisce il nome, utilizza XML per intraprendere la trasformazione. Scopri di più.

Jason Bennett ha scritto un oggetto PL/SQL che genera un documento XML Excel. Scopri di più.