Vindo de um ambiente SQL SSMS, gostaria de duplicar o Print
comando deles, que permite imprimir comandos ou variáveis durante a execução de uma consulta. Estou procurando esse recurso para ajudar a identificar seções específicas do script durante a execução.
Por exemplo, temos um script .sql executado à noite que verifica discrepâncias em números de inventário específicos. Esses números de inventário têm, digamos, um store_id
de 1, 2, 3, 4, 5.
O script tem uma instrução select anexada a cada um deles store_id
. Eu gostaria de poder colocar uma PRINT
instrução para a instrução select de Store_ID
1 para que eu possa ver o arquivo output.txt e ver o título ' Store_id 1
" depois os números de inventário, depois ver o título " Store_id 2
" etc ...
no MSSQL SSMS, gostaria de algo assim
PRINT 'Searching Inventory Discrepancies at Store 1'
Select * from table1 where store_id = '1' etc...
PRINT 'Searching Inventory Discrepancies at Store 2'
Select * from table1 where store_id = '2' etc...
Se eu precisar esclarecer por favor avise, obrigado!
A sintaxe abaixo permitirá que você coloque comentários antes ou depois de sua consulta, para que os comentários sejam exibidos no arquivo output.txt:
Você também deve emitir
SET SERVEROUTPUT ON
para garantir que oPUT_LINE
comando funcione.Aqui estão alguns comandos que você pode usar
DBMS_OUTPUT.PUT_LINE
para controlar a formatação da saída:No meu caso, tive que usar configurações específicas para permitir que minha saída interrompesse a quebra de palavras e fizesse com que a formatação fosse descartada.
A resposta do Hector está mostrando apenas a versão PL/SQL e praticamente não foi perguntado.
Se você estiver procurando imprimir em scripts SQL puros, use o comando sqlplus
PROMPT
.Em seguida, o cliente em execução (por exemplo, sqlplus) imprime o texto diretamente e, como não envia o texto primeiro para o banco de dados, é muito mais rápido e não possui limites de tamanho como dbms_output.
Desvantagem: Você não pode usar nenhuma função de banco de dados como, por exemplo, SYSDATE do banco de dados.
Observe: os comandos sqlplus não precisam
;
marcar o fim de um comando SQL como os comandos SQL fazem.Ou apenas faça isso: