sql >> Databasteknik >  >> RDS >> Oracle

Skapa ett Excel-kalkylblad från en Oracle-databas

Jag antar att problemet är, hur komplex är din "komplexa struktur"?

Programmerings-IDE:er som Oracle SQL Developer eller Quest TOAD har guider för att exportera datatabeller till CSV-filer.

Om du vill sammanfoga data från flera tabeller kan du använda en vy eller till och med skriva en SQL-sats

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

(kom ihåg att kolumner ofta kan innehålla data som inkluderar kommatecken, så du kanske vill använda ett mer ovanligt tecken - eller en uppsättning tecken - som avgränsare.)

Ett annat snabbt sätt att göra något är att använda SQL*Plus HTML-rapporteringsfunktion. Många kalkylarksverktyg kan importera välstrukturerad HTML och XML utan en nackdel. Ta reda på mer.

Om du vill platta till en hierarkisk struktur eller något ännu mer invecklat måste du förmodligen flytta till PL/SQL. Ett handrullat tillvägagångssätt skulle använda en variant av ovanstående uttalande anpassad för att använda 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;

Om du vill exportera specifikt till Excel (dvs. en .XLS-fil) måste du gå längre än Oracles inbyggda funktioner. Den vanliga lösningen för att exportera direkt från PL/SQL till Excel är Tom Kytes OWA_SYLK-omslag för SYLK-api. Ta reda på mer.

Detta fungerar med enstaka kalkylblad. Om du vill exportera till flera kalkylblad finns det ett par alternativa lösningar.

Sanjeev Sapre har sitt get_xl_xml-paket. Som namnet antyder använder den XML för att utföra omvandlingen. Få reda på mer.

Jason Bennett har skrivit ett PL/SQL-objekt som genererar ett Excel XML-dokument. Ta reda på mer.



  1. Anslut SQL Server till SugarCRM

  2. När ska man använda SELECT ... FÖR UPPDATERING?

  3. Skillnad mellan GiST och GIN-index

  4. Hur REPLICATE()-funktionen fungerar i SQL Server (T-SQL)