[SQLPlus](https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm) es una herramienta interactiva que viene instalada con cada instalación moderna de Oracle. SQL Además, le permite ir más allá de las consultas de base de datos estándar con lotes, scripts y cálculos más allá del alcance normal de Oracle.
Incluso es posible, como exploraremos a continuación, generar archivos de texto, como .csv , usando el resultado de una consulta de base de datos en particular.
Iniciando SQL*Plus
Dependiendo de su instalación de Oracle, puede tener acceso a una de las muchas versiones o "modos" diferentes en los que puede ejecutar la aplicación SQL*Plus.
Línea de comandos SQL*Plus
Si desea utilizar la línea de comandos SQL*Plus Command-line , simplemente emitirá el sqlplus comando desde su shell:
$ sqlplus
Esto intentará conectarlo al predeterminado base de datos y se le pedirá que ingrese sus credenciales para autenticarse.
En caso de que necesite conectarse a una database diferente o usa un user diferente (schema ), intente lo siguiente, reemplazando sus propios valores según sea necesario:
$ sqlplus schema@//machine.domain:port/database
iSQL*Plus
Si tiene acceso a él, es posible que desee utilizar iSQL*Plus URL , que es una versión basada en navegador de la herramienta de línea de comandos SQL*Plus.
Esto se logra simplemente visitando la URL iSQL*Plus URL para su base de datos e instalación. La URL exacta variará, pero normalmente tiene el siguiente formato:https://machine_name.domain:port/isqlplus
SQL*Plus para Windows
Si usa Windows, también hay una versión de SQL*Plus con interfaz gráfica de usuario de Windows, que normalmente se puede iniciar desde el menú de inicio:Start > Programs > Oracle > Application Development > SQL Plus .
Enviar una consulta a un archivo
Ahora que está conectado a SQL*Plus, podemos comenzar a crear nuestro archivo.
Modificar la configuración de SQL*Plus
El primer paso es configurar algunas configuraciones del sistema SQL*PLus usando el SET declaración.
Para este ejemplo, modificaremos manualmente esta configuración una vez antes de nuestra consulta y generación de archivos, pero si lo desea, puede cambiar los valores predeterminados de varias configuraciones en su User Profile , ubicado en el login.sql archivo.
set colsep ,
set headsep off
set pagesize 0
set trimspool on
Las primeras configuraciones que normalmente no querrá cambiar, pero explicaremos brevemente lo que logra cada una.
colsepes el carácter separador utilizado para dividir sus columnas. Para un.csvarchivo, esto es una simple coma.headsepes el carácter separador de la fila del encabezado (si necesita uno). En este ejemplo, no mostraremos la fila del encabezado, por lo que dejaremos estooff.pagesizees el número de líneas “por página”. Esta es una configuración un poco arcaica que está pensada para imprimir sin tener demasiadas líneas por página. Con un valor de0, no usamos páginas ya que estamos enviando a un archivo. Si elige mostrar elheaderfila, establezcapagesizea un número muy grande (más grande que el número esperado de resultados de registro en la consulta), por lo que su fila de encabezado solo aparecerá una vez en lugar de una vez "por página".trimspoolestablecer enonsimplemente elimina los espacios en blanco finales.
Ahora será necesario modificar las dos configuraciones finales según su consulta.
set linesize #
set numwidth #
- Para
linesize, el#el valor debe ser el número total de columnas de salida en su consulta resultante. numwidthes el ancho de columna (número de espacios de caracteres) que se utiliza al generar valores numéricos.
Comando de CARRETE
Nota:El SPOOL el comando no está disponible en la versión SQL*Plus basada en navegador, iSQL*Plus URL . Para generar archivos mientras usa iSQL*Plus, cambie la configuración de preferencia necesaria para generar directamente un archivo.
Con nuestra configuración cuidada, ahora debemos decirle a SQL*Plus que genere un archivo. Esto se logra usando el SPOOL declaración.
Mientras SPOOL está activo , SQL*PLus almacenará el resultado de cualquier consulta en el archivo especificado.
Por lo tanto, el siguiente comando a ingresar es spool :
spool file_path
Saltando un poco hacia adelante, después su consulta está insertada, también debe detener spool por lo que la salida del archivo se cierra usando el spool off comando:
spool off
Insertar la Consulta
El último paso después de modificar la configuración y spool se está ejecutando es insertar su consulta. Para nuestro ejemplo simple, estamos sacando todos los libros de nuestro books mesa.
SELECT
title,
primary_author
FROM
books;
No olvide el punto y coma para cerrar su declaración de consulta, luego ingrese el mencionado spool off comando.
Eso es todo, ha generado un nuevo archivo de texto con los resultados de su consulta usando SQL*Plus.
Consejo:uso de un archivo de script
En lugar de ingresar manualmente cada línea, se sugiere ingresar todas las configuraciones en un nuevo archivo de secuencia de comandos que puede ejecutar en SQL*Plus en un solo comando.
Cree un nuevo archivo de script con EDIT declaración:
EDIT file_name
Ahora pegue toda la lista de comandos del script en su nuevo archivo y guárdelo. El contenido completo de nuestro script de ejemplo se puede encontrar a continuación.
set colsep ,
set headsep off
set pagesize 0
set trimspool on
set linesize 2
set numwidth 5
spool books.csv
SELECT
title,
primary_author
FROM
books;
spool off
Para ejecutar el script, simplemente use @ símbolo seguido del nombre del archivo:
@file_name
Su secuencia de comandos debe ejecutarse y el .csv archivo creado como se esperaba.