[SQLPlus](https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm) é uma ferramenta interativa que vem instalada em todas as instalações modernas do Oracle. SQL Além disso, permite que você vá além das consultas de banco de dados padrão com lotes, scripts e cálculos além do escopo normal do Oracle.
É até possível, como exploraremos a seguir – gerar arquivos de texto, como
.csv
, usando a saída de uma consulta de banco de dados específica. Iniciando o SQL*Plus
Dependendo da sua instalação do Oracle, você pode ter acesso a uma das muitas versões ou “modos” diferentes para executar o aplicativo SQL*Plus.
Linha de comando SQL*Plus
Se você deseja usar a
SQL*Plus Command-line
, você simplesmente emitirá o sqlplus
comando do seu shell:$ sqlplus
Isso tentará conectar você ao padrão banco de dados e você será solicitado a inserir suas credenciais para se autenticar.
No caso de você precisar se conectar a um
database
diferente ou use um user
diferente (schema
), tente o seguinte, substituindo seus próprios valores conforme necessário:$ sqlplus schema@//machine.domain:port/database
iSQL*Plus
Se você tiver acesso a ele, talvez queira usar o
iSQL*Plus
, que é uma versão baseada em navegador da ferramenta de linha de comando SQL*Plus. Isso é feito simplesmente visitando o
iSQL*Plus URL
para seu banco de dados e instalação. O URL exato varia, mas normalmente está no seguinte formato:http://machine_name.domain:port/isqlplus
SQL*Plus para Windows
Se você estiver usando o Windows, também há uma versão Windows GUI do SQL*Plus, que normalmente pode ser iniciada a partir do menu Iniciar:
Start > Programs > Oracle > Application Development > SQL Plus
. Enviando uma consulta para um arquivo
Agora que você está conectado ao SQL*Plus, podemos começar a criar nosso arquivo.
Modificar configuração do SQL*Plus
O primeiro passo é definir algumas configurações do sistema SQL*PLus usando o
SET
demonstração. Para este exemplo, alteraremos manualmente essas configurações uma vez antes de nossa consulta e geração de arquivos, mas, se desejar, você pode alterar os padrões de várias configurações em seu
User Profile
, localizado em login.sql
Arquivo. set colsep ,
set headsep off
set pagesize 0
set trimspool on
As primeiras configurações você normalmente não deseja alterar, mas explicaremos brevemente o que cada uma realiza.
colsep
é o caractere separador usado para dividir suas colunas. Para um.csv
arquivo, esta é uma vírgula simples.headsep
é o caractere separador para a linha de cabeçalho (se você precisar de um). Neste exemplo, não estamos gerando a linha de cabeçalho, então deixaremos esteoff
.pagesize
é o número de linhas “por página”. Essa é uma configuração um pouco arcaica destinada à impressão sem muitas linhas por página. Com um valor de0
, não usamos páginas porque estamos gerando um arquivo. Se você optar por mostrar oheader
linha, definapagesize
para um número muito grande (maior do que o número esperado de resultados de registro na consulta), portanto, sua linha de cabeçalho será exibida apenas uma vez em vez de uma vez "por página".trimspool
definido comoon
simplesmente remove os espaços em branco à direita.
Agora, as duas configurações finais precisarão ser alteradas dependendo da sua consulta.
set linesize #
set numwidth #
- Para
linesize
, o#
value deve ser o número total de colunas de saída em sua consulta resultante. numwidth
é a largura da coluna (número de espaços de caracteres) usada na saída de valores numéricos.
Comando SPOOL
Observação:O
SPOOL
comando está indisponível na versão SQL*Plus baseada em navegador, iSQL*Plus
. Para gerar arquivos usando o iSQL*Plus, altere as configurações de preferência necessárias para a saída direta para um arquivo. Com nossas configurações cuidadas, agora devemos dizer ao SQL*Plus para gerar um arquivo. Isso é feito usando o
SPOOL
demonstração. Enquanto
SPOOL
está ativo , o SQL*PLus armazenará a saída de qualquer consulta no arquivo especificado. Portanto, o próximo comando a ser inserido é
spool
:spool file_path
Avançando um pouco, depois sua consulta é inserida, você também precisa interromper o
spool
então a saída do arquivo é fechada usando o spool off
comando:spool off
Inserir a consulta
A última etapa após as configurações serem modificadas e
spool
está em execução é inserir sua consulta. Para nosso exemplo simples, estamos gerando todos os livros de nossos books
tabela. SELECT
title,
primary_author
FROM
books;
Não se esqueça do ponto e vírgula para fechar sua instrução de consulta e, em seguida, insira o acima mencionado
spool off
comando. Pronto, você gerou um novo arquivo de texto com os resultados da sua consulta usando o SQL*Plus.
Dica:usando um arquivo de script
Em vez de inserir manualmente cada linha, sugere-se inserir todas as configurações em um novo arquivo de script que você pode executar no SQL*Plus em um único comando.
Crie um novo arquivo de script com o
EDIT
demonstração:EDIT file_name
Agora cole toda a lista de comandos de script em seu novo arquivo e salve. O conteúdo completo do nosso script de exemplo pode ser encontrado abaixo.
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 executar o script, basta usar o
@
símbolo seguido do nome do arquivo:@file_name
Seu script deve ser executado e o
.csv
arquivo criado como esperado.