Sqlcl - Configurando e usando sqlcli no Windows

  Olá Pessoal, Olha eu aqui novamente para mostrar uma ferramenta que salva vidas e otimiza o uso do MOBA (eu uso o MOBA) e de qualquer outra ferramenta que consigamos abrir um cmd para realizar as atividades diárias, pode ser usado no cmd do próprio Windows caso não queira usar o MOBA. Com ela você pode importar todas as suas conexões Oracle Database do Developer para usar de maneira mais ágil, estamos falando do sqlcl.

Abaixo vou ilustrar como e onde baixar, instalar e importar sua primeira conexão na finalidade de ajudar quem está precisando de uma ferramenta poderosa para concentrar suas conexões e acessar múltiplos ambientes em questões de minutos.

Vamos lá..

Primeiro, devemos baixar a versão mais atual do sqlcl e do jdk para não termos problemas de compatibilidade.


Link Sqlcl 25 -> Downloading and Installing SQLcl (Oracle Official Site)

Link JDK ->  Java Downloads | Oracle (Oracle Official Site)

*Baixe a versão x64 Installer ou x64 MSI Installer


Obs: Quanto ao Java e SQL, recomento baixar sempre a ultima disponível, assim você evita futuros problemas.


Descompacte o arquivo do sqlcl e coloque em uma pasta de sua escolha, no meu caso, movi para o C:

Instale o JDK, se tudo der certo ele estará no diretório : C:\Program Files\Java\jdk-25, e caso já tenha instalado, salve o caminho para uso futuro nesse post.


Agora devemos configurar as variáveis de ambiente para o funcionamento correto da ferramenta.

Para acessar as variáveis de ambiente do Sistema deve clicar com botão direto no Meu computador > Propriedades> Configurações avançadas de sistema> Variáveis de ambiente.

Nesse ponto temos Variáveis de Usuário e Variáveis de Sistema, iremos realizar as devidas modificações na de Sistema.


Vamos primeiramente criar a variável JAVA_HOME apontando para "C:\Program Files\Java\jdk-25" referente ao JDK que instalamos.

Depois vamos criar a variável JDK_JAVA_OPITONS para evitar problemas de acesso que podem ou não ocorrer ao acessar as libs, essa variável vai receber o valor "--enable-native-access=ALL-UNNAMED"



Exemplo do Warning que pode ocorrer sem a variável JDK_JAVA_OPTION


Agora vamos configurar o binário do sqlcl baixado na variável PATH da seção Variáveis de Sistema e adicionar também o JAVA, similar ao passo anterior.





Feito tudo isso, Abra o Moba, no canto superior esquerdo, vai abrir uma nova tela onde vamos na seção "Shell", haverá um menu dropDown onde devemos escolher entre os diversos prompts disponíveis e iremos usar o "cmd". Clique em OK e no canto lateral esquerdo deve aparecer uma sessão pré definida configurada como o cmd. Agora podemos testar se o sqlcl foi configurado corretamente usando o comando "sql /nolog":


Criando cmd



Testando sqlcl



Agora que validamos que o sqlcl está funcionando, podemos realizar o export das nossas conexões no SqlDeveloper usando o método de criptográfica para exportar a conexão com senha e importar no sqlcl para teste:

Ponto do export no Developer onde setamos a senha para exportar a conexão com senha, coloque uma senha nos dois campos diferente de qualquer senha de banco em ambos os campos, garanta que em ambos os campos seja posta a mesma senha. No meu caso eu usei a senha 123456789 apenas para caráter de teste mas você pode escolher qualquer senha nesse ponto.




Com o arquivo gerado, agora vamos importar no sqlcl, abra uma nova sessão do cmd, e acesse o sqlcl - "sql /nolog", com o comando "secret" vamos guardar a senha e realizar o import:

Comando para salvar a senha : secret set passwd 123456789;

Aqui podemos ter várias senhas para vários arquivo, então se precisar importar outro json com outra senha basta apenas trocar a palavra passe "passwd" para outra de sua escolha e importar uma nova senha.

Após importar a senha deve aparecer uma mensagem de senha criada e agora podemos importar o arquivo json exportado passando o passwd como parâmetro:


Comando de import do json: 

cm import -KEY passwd -d REPLACE C:\Users\pcvido\Documents\Teste.json


A título de informação podemos ou não usar o "-d REPLACE" para sobre escrever conexões já existentes mas uma maneira mais efetiva de evitar lixo na pasta onde as conexões são encriptadas e salvas é acessar a pasta e sempre apagar todas as conexões antes de qualquer import, assim você sempre garante um import limpo e sem erros de conexões ou conexões duplicadas.

O caminho onde o sqlcl salva as conexões:

C:\Users\<User>\AppData\Roaming\DBTools\connections



Agora que fizemos o import, chegou a hora de testar a conexão importada, e no caso de termos muitas conexões importadas fica complicado de lembrar todos os nomes e dessa forma o comando abaixo vai ajudar a buscar por inicias ou nomes parciais em meio a tantas conexões:

Comando para buscar entre as conexões: echo cm list -flat | sql -nolog | findstr /i <string>

Após achar a conexão desejada, use "sql -name <nome_conexão >" você pode também, fazer chamadas de scripts junto a string de conexão informado "@<script>" ao final da string acima.




Você também pode usar seus scripts para ter suas ferramentas prontas para usar assim que conectar em um banco sem a necessidade de configurar o caminho dos scripts a cada login. Configurando a variável de ambiente SQLPATH nas variáveis de ambiente de sistema, feito isso você vai conseguir chamar seus scripts com @, e isso facilita muito na hora de executar tarefas diárias.

 


O Sqlcl é uma ferramenta muito poderosa com vários comandos embutidos que facilitam na hora de executar tarefas de banco e dessa forma abaixo deixo um link de referência que foi usado na construção dessa postagem para quem quiser se aprofundar em tudo que essa ferramenta pode agregar no seu dia a dia de trabalho.


Conclusão:

  • Como configurar o Sqlcl no Windows
  • Como Configurar o MOBAXterm para usar o Sqlcl
  • Como importar conexões do SQLDeveloper para o Sqlcl
  • Como gerenciar conexões no Sqlcl
  • Configurando SQLPATH no Windows


Material de apoio:



Por hoje é isso pessoal, espero que esse conteúdo ajude de alguma forma e caso tenham alguma dúvida podem deixar aqui nos comentários ou me mandar via E-mail com Título da postagem, meu E-mail para envio de dúvidas e sugestões de novas postagens: pedrohvido@gmail.com.

Vejo vocês no próximo post!!

Comentários

Postagens mais visitadas deste blog

Instalando Oracle Database 19c em um Oracle Linux 8.8 no Virtual Box - PARTE 2

Temporary Tablespace : Identificando consultas consumindo uma Tablespace Temporária

SQL - Calculando crescimento do Banco de dados Oracle