Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment exécuter un script SQL Plus dans PowerShell

J'utilise l'opérateur d'appel, & , comme Keith Hill l'a suggéré avec la question, Comment exécuter un fichier EXE dans PowerShell avec des paramètres avec des espaces et des guillemets.

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

J'ai placé le nom d'utilisateur, le mot de passe entre guillemets à cause des espaces.

Pour démarrer un script, j'ajoute un autre paramètre comme suit :

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

Si vous recevez l'erreur ORA-12154 et que vous savez que d'autres utilisateurs ont établi des connexions (ce qui implique que l'écouteur de la base de données fonctionne correctement) ; J'examinerais ensuite si SQL*Plus peut trouver mon fichier tnsname.

Ma première tâche serait de voir si je peux tnsping comme suit dans Windows cmd.exe :

tnsping orcl

Il confirmera qu'une connexion peut (ou ne peut pas être établie).

Si ce n'est pas le cas, je vérifierais si la variable d'environnement, ORACLE_HOME, est définie. SQL*Plus l'utilise pour trouver le fichier tnsname.ora.

S'il n'est pas défini, j'exécuterais cette instruction dans PowerShell (pour établir cette variable d'environnement) :

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

Ensuite, je réessaierais de tnsping (identifié ci-dessus).

Une fois réussi, je réessaierais d'exécuter la commande d'exécution du script ci-dessus.