Oracle
 sql >> Database >  >> RDS >> Oracle

Come eseguire uno script SQL Plus in PowerShell

Uso l'operatore di chiamata, & , come ha suggerito Keith Hill con la domanda Come eseguire un file EXE in PowerShell con parametri con spazi e virgolette.

& 'path\sqlplus.exe' 'system/[email protected] as sysdba'

Ho inserito username, password tra virgolette per via degli spazi.

Per avviare uno script, aggiungo un altro parametro come segue:

 & 'path\sqlplus.exe' 'system/[email protected] as sysdba' '@my_script.sql'

Se ricevi l'errore ORA-12154 e sai che altri utenti hanno stabilito connessioni (il che implica che il listener di database funziona correttamente); Vorrei quindi esaminare se SQL * Plus può trovare il mio file tnsname.

Il mio primo compito sarebbe vedere se riesco a eseguire il tnsping come segue in Windows cmd.exe:

tnsping orcl

Confermerà che una connessione può (o non può essere stabilita).

In caso contrario, verificherei se la variabile di ambiente, ORACLE_HOME, è impostata. SQL*Plus lo usa per trovare il file tnsname.ora.

Se non è impostato, eseguirei questa istruzione in PowerShell (per stabilire questa variabile di ambiente):

[Environment]::SetEnvironmentVariable("ORACLE_HOME", "C:\app\Administrator\product\11.2.0\client_1" , "User")

Successivamente, vorrei riprovare a tnsping (identificato sopra).

Una volta eseguito correttamente, proverei nuovamente a eseguire lo script in esecuzione sopra.