Creare un foglio di calcolo Excel da un database Oracle

Ho una tabella in un database Oracle. Devo creare una struttura di foglio di calcolo complessa dalla tabella Oracle. Sto cercando il miglior approccio per raggiungere questo objective. Posso usare SSIS o utilizzare alcune utility Oracle per creare il foglio di calcolo.

Qualsiasi aiuto sarebbe estremamente apprezzato.

Grazie in anticipo.

Saluti Dibs

Suppongo che il problema sia, quanto sia complessa la tua “struttura complessa”?

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

Se si desidera unire dati da più tabelle, è ansible utilizzare una vista o persino 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 usare un carattere più insolito – o un insieme di caratteri – come separatore.)

Un altro modo rapido per fare ciò è 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ù complicato, probabilmente dovrai spostarti in PL / SQL. Un approccio arrotolato a mano userebbe 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 si desidera esportare specificamente in Excel (es. Un file .XLS), è necessario andare oltre i built-in Oracle. La solita soluzione per esportare direttamente da PL / SQL a Excel è il wrapper OWA_SYLK di Tom Kyte per l’API di SYLK. Scopri di più.

Funziona con singoli fogli di lavoro. Se si desidera 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, usa XML per intraprendere la trasformazione. Scopri di più .

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

È ansible utilizzare il pacchetto ORA_EXCEL per creare documenti Excel con una struttura complessa. ORA_EXCEL dispone di componenti semplici ma potenti che puoi utilizzare per creare file Excel complessi.

Controlla l’elenco delle funzioni su: http://www.oraexcel.com/documentation

La prima cosa che proverei è scaricare i valori che volevo CSV. Excel dovrebbe essere in grado di importarlo bene, ed è spesso più facile giocherellare con le formule di Excel, ecc., Manualmente che cercare di automatizzarlo. Se stai utilizzando Oracle SQLDeveloper, c’è un’opzione per esportare i risultati in CSV. Se stai usando SQL * Plus, puoi usare set colsep , per fare in modo che Oracle usi le virgole per separare le colonne. Probabilmente vorrai fare qualche altro aggiustamento di formattazione se stai usando SQL * Plus.

Esiste una versione “disconnessa” delle descrizioni dei report SSRS denominata .RDLC (Report Language Language Client). Questo è un sottoinsieme del RDL che fa parte di SSRS. Esistono controlli di visualizzazione dei report integrati negli esportatori per i formati Excel e PDF. Il controllo del visualizzatore è disponibile sia per i moduli Windows che per i moduli Web. L’origine dati per questi report sono generici DataSet o oggetti dati che sono agnostici alle origini dati (SQL, Oracle, … segnali di fumo ..)

http://www.highoncoding.com/Articles/339_Creating_Charts_Using_Aspnet_ReportViewer_Control.aspx

http://msdn.microsoft.com/en-us/library/ms251771%28VS.80%29.aspx

set linesize 4000 pagesize 0 colsep ‘,’ imposta la direzione fuori trimspool sul trimout attivo

spool c: /file.xls

seleziona * da tableName;

spooling;

questo genererà il file.xls nell’unità c. Puoi dare qualsiasi indirizzo e se vuoi intestazione colonna rimuovi la clausola “heading off” e imposta il pageize su un valore numerico.