Utilizzo Oracle SQL Developer 3.0. Cercando di capire come esportare un risultato di una query in un file di testo (preferibilmente CSV). Facendo clic con il pulsante destro sulla finestra dei risultati della query non mi vengono fornite opzioni di esportazione.Come esportare il risultato della query in csv in Oracle SQL Developer?
risposta
versione che sto usando
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)
Questo è tutto.
Metodo 2
Eseguire una query
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
schermata riveduta per SQL Developer Versione 3.0.04
Dal formato menu selezionare CSV
E seguire il resto delle istruzioni sullo schermo.
+1. Il termine "Unload" mi sembra anti-intuitivo. "Caricare" alcuni dati significa inserirli nel database; quindi "Scarica" dovrebbe significare che i dati sono cancellati ... –
Completamente d'accordo Jeffrey –
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
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.
impressionante, stavo cercando in particolare su come copiare le intestazioni. Grazie! – mishkin
Perfetto! Mi ha salvato un sacco di tempo! – IcedDante
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. –
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.
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: –
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? –
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 –
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.
/* insert */è particolarmente utile. – jeremyjjbrown
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.
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. –
È abbastanza semplice sostituire ogni occorrenza di \ with \\, se ne sai in anticipo. Grazie! – jpaugh
Sì, abbastanza semplice e probabilmente sbagliato per la maggior parte degli strumenti di importazione CSV. – Wormbo
https://www.youtube.com/watch?v=5pA4EhFYeeE#t=34 – zloctb