¿Cómo exportar el resultado de la consulta a csv en Oracle SQL Developer?

Respuestas:

376

Versión que estoy usando

texto alternativo

Actualización 5 de mayo de 2012

Jeff Smith tiene blogeado muestra, lo que creo que es el método superior para obtener una salida CSV desde SQL Developer. El método de Jeff se muestra como el Método 1 a continuación:

Método 1

Agregue el comentario /*csv*/a su consulta SQL y ejecute la consulta como un script (usando F5 o el segundo botón de ejecución en la barra de herramientas de la hoja de trabajo)

ingrese la descripción de la imagen aquí

Eso es.

Método 2

Ejecutar una consulta

texto alternativo

Haga clic derecho y seleccione descargar.

Actualizar. En Sql Developer Version 3.0.04, la descarga se ha cambiado para exportar Gracias a Janis Peisenieks por señalar esto

texto alternativo

Captura de pantalla revisada para SQL Developer Versión 3.0.04

ingrese la descripción de la imagen aquí

Desde el formato desplegable, seleccione CSV

texto alternativo

Y siga el resto de las instrucciones en pantalla.

Ian Carpenter
fuente
25
+1. El término "Descargar" me parece anti-intuitivo. "Cargar" algunos datos significa insertarlos en la base de datos; por lo tanto, "Descargar" debería significar que los datos se eliminan ...
Jeffrey Kemp
8
En la versión 3.0.04, esta opción ha cambiado de nombre a Exportar.
Janis Peisenieks
2
Excelente. ps mayúscula /*CSV*/no funcionó para mí, pero minúscula /*csv*/sí. ¡Gracias!
Eran Medan
3
También tenga en cuenta que el método 2 puede encontrarse con un error (todavía presente en mi versión 3.0.04) donde simplemente se cuelga con un conteo de filas grandes (3K filas más o menos). Estoy usando este SQLPLUS de la vieja escuela porque no vi el método 1 anterior primero, pero a algunos les puede gustar esto: {code} SET UNDERLINE OFF SET COLSEP ',' SET LINES 20000 PAGES 20000 SET FEEDBACK off - opcional SET HEADING off Spool C: \ Export \ EMP.csv --Ahora la consulta SELECT * FROM EMP; Spool OFF
Jim P
1
@topr Use el método 1, luego seleccione todo, copie y pegue en un editor de texto y guárdelo como csv. Incluso podría pegar directamente en Excel, pero no estoy seguro de eso.
Travis
45

No es exactamente "exportar", pero puede seleccionar las filas (o Ctrl- Apara seleccionarlas todas) en la cuadrícula que desea exportar, y luego copiar con Ctrl- C.

El valor predeterminado está delimitado por tabuladores. Puede pegar eso en Excel u otro editor y manipular los delimitadores todo lo que quiera.

Además, si usa Ctrl- Shift- en Clugar de Ctrl- C, también copiará los encabezados de columna.

BQ.
fuente
55
increíble, estaba buscando específicamente cómo copiar encabezados. ¡Gracias!
mishkin
3
El único problema, si tiene muchas filas, significará que tendrá que consultar todo el conjunto de datos nuevamente. y si se trata de una consulta de larga duración, esto significa que espera mucho la primera página y luego espera mucho todas las páginas después de presionar ctrl + A. en otras palabras, una gran solución, pero funciona solo la mayor parte del tiempo y para consultas relativamente más rápidas o más pequeñas.
Eran Medan
¡En el recuento de filas largas, eliminará las cosas copiadas! No uses esto.
Hash
@ Mark Nunca he visto que eso suceda yo mismo. ¿Solo mantuvo las primeras 50 filas o algo así? Si es así, hay una preferencia separada para eso. Solo copia lo que está actualmente en la cuadrícula, pero si se desplaza hacia la parte inferior de la cuadrícula, SQL Dev buscará automáticamente más filas, por lo que puedo ver cómo alguien podría interpretar eso como un error.
BQ.
1
Intenté hacer esto en 43K filas de datos y simplemente se ejecuta para siempre: la opción de exportación es mucho más rápida. Esto es increíble si solo tiene unas pocas filas de datos.
izikandrw
28

Para su información, puede sustituir /*csv*/ por otros formatos, incluidos /*xml*/y /*html*/. select /*xml*/ * from empdevolvería un documento xml con los resultados de la consulta, por ejemplo. Encontré este artículo mientras buscaba una manera fácil de devolver xml de una consulta.

Yves Rochon
fuente
44
/ * insert * / es particularmente útil.
jeremyjjbrown
¿A dónde van los archivos?
Anomalía
Ah, no importa, pasé por alto la parte de "ejecutar como script", sin darme cuenta de que esto era distinto del botón de ejecución habitual.
Anomalía
4

Para su información a cualquiera que tenga problemas, hay un error en la exportación de marca de tiempo CSV con el que acabo de pasar unas horas trabajando. Algunos campos que necesitaba exportar eran de tipo marca de tiempo. Parece que la opción de exportación CSV incluso en la versión actual (3.0.04 a partir de esta publicación) no puede colocar los símbolos de agrupación alrededor de las marcas de tiempo. Muy frustrante ya que los espacios en las marcas de tiempo rompieron mi importancia. La mejor solución que encontré fue escribir mi consulta con un TO_CHAR () en todas mis marcas de tiempo, lo que produce la salida correcta, aunque con un poco más de trabajo. Espero que esto ahorre algo de tiempo a alguien o ponga a Oracle en la pelota con su próximo lanzamiento.

BoeroBoy
fuente
1
Mi versión 3.0.04 todavía tiene un error en el que simplemente se cuelga con exportaciones más grandes (la mía es de 3K filas). Mi solución simple fue usar SQLPLUS en su lugar:
Jim P
En mi caso, el tipo de datos espaciales ( docs.oracle.com/cd/B19306_01/appdev.102/b14255/… ) se exportaba de esta manera (observe las comas) MDSYS.SDO_GEOMETRY(2001,8307,MDSYS.SDO_POINT_TYPE(-122.39096,37.79251,NULL),NULL,NULL)sin estar entre comillas. Y estoy usando SQL dinámico, así que no puedo TO_CHAR () estas columnas. ¿Alguna sugerencia?
The Red Pea
Aunque estoy usando Dynamic SQL y solo selecciono *, (y no quiero modificar esto para una excepción para una sola columna SQL de tipos de datos espaciales), tal vez podría intentar dos cosas: 1) Usar un COLSEP diferente como '|', o 2) Antes de la instrucción SELECT, especifique cómo debe formatearse esta columna con docs.oracle.com/cd/B19306_01/server.102/b14357/ch12013.htm
The Red Pea
2

Para realizar una exportación a su sistema local desde el desarrollador SQL.

Path : C:\Source_Table_Extract\des_loan_due_dtls_src_boaf.csv

    SPOOL "Path where you want to save the file"
    SELECT /*csv*/ * FROM TABLE_NAME;
Arpan Saini
fuente
1

CSV Export no escapa a sus datos. Tenga cuidado con las cadenas que terminan en \porque el resultado \"se verá como un escape "y no un \. Entonces tiene el número incorrecto de "y toda su fila se rompe.

Juan
fuente
Probablemente no sea un error: puede decidir cómo se escapan las comillas, y el valor predeterminado es escapar con otro carácter de comillas, no una barra diagonal inversa. En ese caso, "foo\"es una cadena entre comillas perfectamente válida.
Ken Williams
Es lo suficientemente simple como para reemplazar cada aparición de \ con \\, si lo sabe de antemano. ¡Gracias!
jpaugh
Sí, lo suficientemente simple y probablemente incorrecto para la mayoría de las herramientas de importación CSV.
Wormbo