2010-11-12 37 views

risposta

308

versione che sto usando

alt text

aggiornamento 5 maggio 2012

Jeff Smith ha blogged mostra, quello che credo sia il metodo superiore per ottenere l'output in formato CSV da SQL Developer. il metodo di Jeff è mostrato come Metodo 1 di seguito:

Metodo 1

aggiungere il commento /*csv*/ alla query SQL ed eseguire la query come script (con F5 o il pulsante 2 ° esecuzione sulla barra degli strumenti del foglio di lavoro)

enter image description here

Questo è tutto.

Metodo 2

Eseguire una query

alt text

Fare clic destro e selezionare scarico.

Aggiornamento . In SQL Developer versione 3.0.04 scarico è stato modificato per l'esportazione Grazie a Janis Peisenieks per la precisazione

alt text

schermata riveduta per SQL Developer Versione 3.0.04

enter image description here

Dal formato menu selezionare CSV

alt text

E seguire il resto delle istruzioni sullo schermo.

+23

+1. Il termine "Unload" mi sembra anti-intuitivo. "Caricare" alcuni dati significa inserirli nel database; quindi "Scarica" ​​dovrebbe significare che i dati sono cancellati ... –

+0

Completamente d'accordo Jeffrey –

+5

Non potrei essere più d'accordo, che design UI terribile. Ho passato 10 minuti buoni e poi ho cercato di capire dove diavolo andava (nelle precedenti versioni di SQL Developer, l'opzione 'Esporta' era in quel menu) – djhworld

36

Non esattamente "esportazione", ma è possibile selezionare le righe (o Ctrl - Un per selezionare tutti) nella griglia si desidera esportare, e quindi copiare con Ctrl - C.

Il valore predefinito è delimitato da tabulazioni. Puoi incollarlo in Excel o in un altro editor e manipolare i delimitatori come preferisci.

Inoltre, se si utilizza Ctrl - Maiusc - C invece di Ctrl - C, avrete anche di copiare le intestazioni delle colonne.

+5

impressionante, stavo cercando in particolare su come copiare le intestazioni. Grazie! – mishkin

+1

Perfetto! Mi ha salvato un sacco di tempo! – IcedDante

+3

L'unico problema, se hai un sacco di righe, significa che dovrà interrogare nuovamente l'intero set di dati. e se si tratta di una query di lunga durata, significa che si attende molto per la prima pagina, quindi si attende molto per tutte le pagine dopo aver premuto ctrl + A. in altre parole, ottima soluzione, ma funziona solo la maggior parte del tempo e per query relativamente più veloci o più piccole. –

2

FYI a chiunque si imbatta in problemi, c'è un bug in esportazione di timestamp CSV che ho appena trascorso un paio d'ore a lavorare intorno. Alcuni campi che dovevo esportare erano di tipo timestamp. Sembra che l'opzione di esportazione CSV anche nella versione corrente (3.0.04 a partire da questa pubblicazione) non riesca a collocare i simboli di raggruppamento attorno a timestamp. Molto frustrante dal momento che gli spazi nei timestamp hanno interrotto la mia importazione. La soluzione migliore che ho trovato è stata quella di scrivere la mia query con un TO_CHAR() su tutti i miei timestamp, che produce l'output corretto, anche se con un po 'più di lavoro. Spero che questo salvi qualcuno da qualche tempo o che porti Oracle alla prossima uscita.

+1

La mia versione 3.0.04 ha ancora un bug in cui si blocca solo con esportazioni più grandi (il mio è di 3K righe). La mia semplice soluzione era usare SQLPLUS invece: –

+0

Nel mio caso il tipo di dati spaziali (http://docs.oracle.com/cd/B19306_01/appdev.102/b14255/sdo_objrelschema.htm) veniva esportato in questo modo (notare virgole) 'MDSYS.SDO_GEOMETRY (2001,8307, MDSYS.SDO_POINT_TYPE (-122.39096,37.79251, NULL), NULL, NULL)' senza essere racchiuso tra virgolette. E sto usando SQL dinamico, quindi non posso TO_CHAR() queste colonne. Eventuali suggerimenti? –

+0

Anche se sto usando Dynamic SQL e sto semplicemente selezionando *, (e non voglio modificarlo per un'eccezione per una singola colonna SQL di tipi di dati spaziali), forse potrei provare due cose: 1) Usare un COLSEP diverso come '|', o 2) Prima dell'istruzione SELECT, specifica come questa colonna dovrebbe essere formattata usando http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12013.htm –

25

FYI, è possibile sostituire il /*csv*/ per altri formati pure compreso /*xml*/ e /*html*/. selezionare /*xml*/ * from emp restituirebbe un documento xml con i risultati della query, ad esempio. Mi sono imbattuto in questo articolo mentre cercavo un modo semplice per restituire xml da una query.

+4

/* insert */è particolarmente utile. – jeremyjjbrown

1

CSV Export non sfugge ai tuoi dati. Fai attenzione alle stringhe che terminano con \ perché il risultato \" sarà simile a un escape " e non a \. Quindi hai il numero sbagliato di " e la tua intera riga è rotta.

+0

Probabilmente non è un bug - puoi decidere come le virgolette sono sfuggite, e il default è di fuggire con un altro carattere di citazione, non una barra rovesciata. In tal caso, "" foo \ "' è una stringa quotata perfettamente valida. –

+0

È abbastanza semplice sostituire ogni occorrenza di \ with \\, se ne sai in anticipo. Grazie! – jpaugh

+0

Sì, abbastanza semplice e probabilmente sbagliato per la maggior parte degli strumenti di importazione CSV. – Wormbo

Problemi correlati