[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:http://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.
colsep
es el carácter separador utilizado para dividir sus columnas. Para un.csv
archivo, esto es una simple coma.headsep
es 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
.pagesize
es 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 elheader
fila, establezcapagesize
a 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".trimspool
establecer enon
simplemente 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. numwidth
es 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.