sql >> Database >  >> RDS >> Oracle

Een Excel-spreadsheet maken vanuit een Oracle-database

Ik veronderstel dat het probleem is, hoe complex is uw "complexe structuur"?

Programmeer-IDE's zoals Oracle SQL Developer of Quest TOAD hebben wizards om gegevenstabel naar CSV-bestanden te exporteren.

Als u gegevens uit meerdere tabellen wilt samenvoegen, kunt u een weergave gebruiken of zelfs een SQL-statement schrijven

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

(Houd er rekening mee dat kolommen vaak gegevens kunnen bevatten die komma's bevatten, dus misschien wilt u een ongebruikelijker teken - of een reeks tekens - als scheidingsteken gebruiken.)

Een andere snelle manier om iets te doen is om de HTML-rapportagefunctie van SQL*Plus te gebruiken. Veel spreadsheettools kunnen goed gestructureerde HTML en XML importeren zonder een hapering. Lees meer.

Als u een hiërarchische structuur of iets ingewikkelder wilt afvlakken, moet u waarschijnlijk overstappen op PL/SQL. Een met de hand gerolde benadering zou een variant van de bovenstaande verklaring gebruiken die is aangepast om UTL_FILE te gebruiken:

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;

Als u specifiek naar Excel wilt exporteren (d.w.z. een .XLS-bestand), moet u verder gaan dan de ingebouwde Oracle-systemen. De gebruikelijke oplossing voor het rechtstreeks exporteren van PL/SQL naar Excel is Tom Kyte's OWA_SYLK-wrapper voor de SYLK-api. Lees meer.

Dit werkt met losse werkbladen. Als u naar meerdere werkbladen wilt exporteren, zijn er een aantal alternatieve oplossingen.

Sanjeev Sapre heeft zijn pakket get_xl_xml. Zoals de naam al doet vermoeden, gebruikt het XML om de transformatie uit te voeren. Meer te weten komen.

Jason Bennett heeft een PL/SQL-object geschreven dat een Excel XML-document genereert. Lees meer.



  1. Een platte tabel/weergave van een hiërarchisch gedefinieerde set gegevens maken

  2. Wat te controleren als het MySQL I/O-gebruik hoog is?

  3. oracle 11g en integratie van winterslaapveer en jsf

  4. Tijdzone behouden in PostgreSQL-tijdstempeltype