sql >> Database >  >> RDS >> Oracle

Een SQL Plus-script uitvoeren in PowerShell

Ik gebruik de oproepoperator, & , zoals Keith Hill heeft gesuggereerd met de vraag:Hoe een EXE-bestand in PowerShell uit te voeren met parameters met spaties en aanhalingstekens.

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

Ik heb de gebruikersnaam en het wachtwoord tussen aanhalingstekens geplaatst vanwege de spaties.

Om een ​​script te starten, voeg ik als volgt nog een parameter toe:

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

Als u de ORA-12154-fout ontvangt en u weet dat andere gebruikers verbindingen tot stand hebben gebracht (wat inhoudt dat de database-listener correct werkt); Ik zou dan onderzoeken of SQL*Plus mijn tnsname-bestand kan vinden.

Mijn eerste taak zou zijn om te zien of ik als volgt kan tnspen in Windows cmd.exe:

tnsping orcl

Het zal bevestigen dat een verbinding kan (of niet tot stand kan worden gebracht).

Als dit niet het geval is, zou ik controleren of de omgevingsvariabele, ORACLE_HOME, is ingesteld. SQL*Plus gebruikt dit om het tnsname.ora-bestand te vinden.

Als het niet is ingesteld, zou ik deze instructie uitvoeren in PowerShell (om deze omgevingsvariabele vast te stellen):

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

Vervolgens zou ik opnieuw proberen te tnspen (hierboven aangegeven).

Als het gelukt is, zou ik opnieuw proberen om de bovenstaande opdracht voor het uitvoeren van het script uit te voeren.



  1. PostgreSQL-updates met meerdere rijen in Node.js

  2. Hoe u de laatste dag van de maand in T-SQL kunt krijgen

  3. SQL telt alle rijen in plaats van afzonderlijke rijen

  4. Meerdere datacenterconfiguraties met Galera Cluster voor MySQL of MariaDB