GPO ( Grupo de Profissionais Oracle )
A maior comunidade Oracle do Brasil !

Gerando Relatórios HTML no SQLPlus

Por quantas vezes você se deparou com uma situação onde teria que rodar um comando SQL em um banco de dados de um cliente, que não oferecia nenhum acesso com interface gráfica amigável, e foi necessário usar o SQLPlus, para depois gerar um relatório com os dados retornados? A tarefa só piora quando o volume de dados trazidos pela query é tão grande que o buffer do SQLPlus não comporta, ou quando a tarefa de entregar os dados devidamente tabulados não pode esperar por mais de 5 minutos.

É nesse momento que ficamos felizes com algumas funcionalidades fornecidas pelo Oracle Database. Embora seja algo extremamente simples de se apresentar e de se implementar, essa funcionalidade nos traz um ganho em relação ao tempo gasto no processamento dos arquivos de spool, que nos liberta de tarefas cansativas e que não nos agrega nenhum valor.

Imagine se o relatório solicitado no parágrafo acima já viesse formatado em tabelas HTML e pudesse ser aberto em qualquer navegador. O único trabalho do DBA seria executar um conjunto de comandos e depois transferir o arquivo da saída do spool para sua máquina.

Para ilustrar o exemplo, vamos criar um script que nos trará dados sobre a instância a qual estamos logados, data e hora do sistema e depois farei uma busca que trará a quantidade de usuários ativos conectados ao banco de dados.

SELECT *
FROM v$version;

SELECT TO_CHAR(SYSDATE,'dd/mm/yyyy HH24:mi') AS "Data e Hora"
FROM DUAL;

SELECT NVL(username,'Não Identificado') "Usuário",
      COUNT(*) "Quantidade de Sessões"
FROM v$session

GROUP BY NVL(username,'Não Identificado')
ORDER BY 1;

Depois de criarmos o script acima, salve-o como teste.sql servidor. Agora vamos chamar o SQLPlus para executá-lo:

sqlplus -S -M "HTML ON TABLE 'BORDER="2"'" usuario/senha@sid_da_instancia @teste.sql>teste.html

O nome do arquivo de saída escolhido foi teste.html. Neste comando, tanto o arquivo .sql quanto o arquivo de saída encontram-se no mesmo local de onde foi feita a chamada ao SQLPlus. Caso esteja usando diretórios diferentes, será necessário colocar o caminho completo de cada um desses arquivos.

O resultado dessa execução será algo do tipo:

Obviamente que este recurso não só pode como deve ser utilizado com outros scripts mais bem elaborados, sobretudo ao executarmos um health check em uma base de dados que aparentemente apresenta problemas. Mas este assunto será algo a ser discutido em um outro post.

Por enquanto é só. Espero ter contribuído mais uma vez.

Referências

https://docs.oracle.com/cd/B13789_01/server.101/b12170/ch8.htm

https://docs.oracle.com/cd/B10501_01/server.920/a90842/ch8.htm

Share

You may also like...

Deixe um comentário

O seu endereço de e-mail não será publicado.