Jeg bruger opkaldsoperatøren, &
, som Keith Hill har foreslået med spørgsmålet, hvordan man kører en EXE-fil i PowerShell med parametre med mellemrum og anførselstegn.
& 'path\sqlplus.exe' 'system/[email protected] as sysdba'
Jeg har sat brugernavnet, adgangskoden i anførselstegn på grund af mellemrummene.
For at starte et script tilføjer jeg en anden parameter som følger:
& 'path\sqlplus.exe' 'system/[email protected] as sysdba' '@my_script.sql'
Hvis du modtager ORA-12154-fejlen, og du ved, at andre brugere har etableret forbindelser (hvilket betyder, at databaselytteren kører korrekt); Jeg ville så undersøge om SQL*Plus kan finde min tnsname fil.
Min første opgave ville være at se, om jeg kan tnsping som følger i Windows cmd.exe:
tnsping orcl
Det vil bekræfte, at en forbindelse kan (eller ikke kan etableres).
Hvis det ikke kan, vil jeg kontrollere, om miljøvariablen, ORACLE_HOME, er indstillet. SQL*Plus bruger dette til at finde filen tnsname.ora.
Hvis det ikke er indstillet, vil jeg udføre denne sætning i PowerShell (for at etablere denne miljøvariabel):
[Environment]::SetEnvironmentVariable("ORACLE_HOME", "C:\app\Administrator\product\11.2.0\client_1" , "User")
Dernæst ville jeg prøve at tnsping igen (identificeret ovenfor).
Når det er lykkedes, ville jeg prøve igen at udføre scriptet kørende kommando ovenfor.