Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como executar um script SQL Plus no PowerShell


Eu uso o operador de chamada, & , como Keith Hill sugeriu com a pergunta, Como executar um arquivo EXE no PowerShell com parâmetros com espaços e aspas.
& 'path\sqlplus.exe' 'system/[email protected] as sysdba'

Coloquei o nome de usuário, senha entre aspas devido aos espaços.

Para iniciar um script, adiciono outro parâmetro da seguinte forma:
 & 'path\sqlplus.exe' 'system/[email protected] as sysdba' '@my_script.sql'

Se você está recebendo o erro ORA-12154 e sabe que outros usuários estabeleceram conexões (o que implica que o listener do banco de dados está funcionando corretamente); Eu então examinaria se o SQL*Plus pode encontrar meu arquivo tnsname.

Minha primeira tarefa seria ver se consigo tnsping da seguinte forma no Windows cmd.exe:
tnsping orcl

Ele confirmará que uma conexão pode (ou não pode ser estabelecida).

Se não puder, eu verificaria se a variável de ambiente, ORACLE_HOME, está definida. O SQL*Plus usa isso para localizar o arquivo tnsname.ora.

Se não estiver definido, eu executaria esta instrução no PowerShell (para estabelecer esta variável de ambiente):
[Environment]::SetEnvironmentVariable("ORACLE_HOME", "C:\app\Administrator\product\11.2.0\client_1" , "User")

Em seguida, tentaria novamente o tnsping (identificado acima).

Uma vez bem-sucedido, tentaria novamente executar o comando de execução do script acima.