sql >> Base de Datos >  >> RDS >> Oracle

Cómo ejecutar un script SQL Plus en PowerShell

Yo uso el operador de llamada, & , como sugirió Keith Hill con la pregunta, Cómo ejecutar un archivo EXE en PowerShell con parámetros con espacios y comillas.

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

Coloqué el nombre de usuario, la contraseña entre comillas debido a los espacios.

Para iniciar un script, agrego otro parámetro de la siguiente manera:

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

Si recibe el error ORA-12154 y sabe que otros usuarios han establecido conexiones (lo que implica que el escucha de la base de datos se está ejecutando correctamente); Luego examinaría si SQL*Plus puede encontrar mi archivo tnsname.

Mi primera tarea sería ver si puedo hacer tnsping de la siguiente manera en Windows cmd.exe:

tnsping orcl

Confirmará que se puede (o no se puede establecer) una conexión.

Si no puede, verificaría si la variable de entorno, ORACLE_HOME, está configurada. SQL*Plus usa esto para encontrar el archivo tnsname.ora.

Si no está configurado, ejecutaría esta declaración en PowerShell (para establecer esta variable de entorno):

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

A continuación, volvería a intentar tnsping (identificado anteriormente).

Una vez que tenga éxito, volvería a intentar ejecutar el comando de ejecución del script anterior.