Oracle - SQLPLUS Kunne ikke oprette forbindelse i Windows kommandoprompt

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at oprette forbindelse til en Oracle-instans på en Linux-server fra min bærbare computer ved hjælp af SQLPLUS ved kommandoprompten.


Jeg har Oracle SQLDeveloper installeret, og jeg bruger den til interaktive, men forsøger at få SQLPLUS til at køre, så jeg kan konfigurere nogle batchprocesser.


I vinduet COMMAND sætter jeg først min ORACLE\_HOME variabel ved hjælp af:


set ORACLE\_HOME=C:apporacleproduct11.2.0client\_1


Så forsøger jeg at bruge SQLPLUS til at oprette forbindelse ved hjælp af:


sqlplus -s 'myID/myPW@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBServer)(PORT=1521))(CONNECT\_DATA=(SERVICE\_NAME=XXX)))'


Selvom jeg har angivet en PW, svarer den med Enter password: prompt og når jeg indtaster den og klikker Enter, får jeg ERROR



  ORA-12560: TNS: protokoladapterfejl



Så, jeg sætter min ORACLE\_HOME variabel ved hjælp af: (tilføjer BIN)


set ORACLE\_HOME=C:apporacleproduct11.2.0client\_1BIN


Så forsøger jeg at bruge SQLPLUS til at oprette forbindelse ved hjælp af:


-s 'myID/myPW@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBServer)(PORT=1521))(CONNECT\_DATA=(SERVICE\_NAME=xxx)))'


Det giver 2 fejl, men kræver ikke adgangskode mindst:



  Fejl 6 initialisering SQL * Plus SP2-0667: Meddelelsesfil sp1.msb ikke fundet
  SP2-0750: Du skal muligvis indstille ORACLE\_HOME til din Oracle-software
  vejviser



Jeg har forsøgt forskellige værdier for ORACLE\_HOME, men enten vil det bede om PW og stadig ikke lide det - eller det vil ikke bede om og fejle med andre fejl. Jeg har brug for det til at tage den PW -værdi, jeg leverede og forbinde, men kan ikke synes at få det til at fungere. Jeg har også sørget for, at jeg har læst og udført tilladelse på de pågældende mapper og sp1us.msb fil i mappen client\_1sqlplusmesg.


Dette er mit første forsøg på at køre SQLPLUS på min bærbare computer. Jeg har kørt det på en Linux-server før og i scriptet, hvor jeg satte i shell script filen selv med:


export ORACLE\_HOME=/oracle/app/product/11.2.0.4/dbhome\_1/


og det virker der.


Ikke sikker på, hvorfor jeg ikke kan arbejde på min bærbare computer. Åben for forslag. Tak,

Bedste reference


Windows-kommandoprompten behandler enkelt citater anderledes end Linux. På Linux vil en af ​​disse fungere:


sqlplus -s 'myID/myPW@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBServer)(PORT=1521))(CONNECT\_DATA=(SERVICE\_NAME=XXX)))'
sqlplus -s "myID/myPW@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBServer)(PORT=1521))(CONNECT\_DATA=(SERVICE\_NAME=XXX)))"
sqlplus -s myID/myPW@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBServer)(PORT=1521))(CONNECT\_DATA=(SERVICE\_NAME=XXX)))


medmindre der er nogen specielle tegn gemt i dine reelle værdier.


Men i Windows indeholder de første af dem, med enkelt citater, de citater i værdien, der overføres til SQL * Plus. Det får det til at se hele sagen som bare brugernavnet.


Det beder dig derefter om adgangskoden; men da den heller ikke har set forbindelsesstrengen - da den mener, at @... også er en del af brugernavnet, kan det ikke nå din DB for at prøve at validere det, dvs. ORA-12560.


Så fjern enten de enkelte citater, eller skift til dobbelte citater.