Laten we zeggen dat ik een Oracle database heb. Ik heb een gebruikersnaam = x, wachtwoord = y, database = z. Ook weet ik de poort = a, SID = b, Hostnaam = c.
Dus hoe moet ik correct verbinding maken? Ik heb veel opties gebruikt zoals:
sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'
sqlplus (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=b)))
Het indienen van deze commandoregels geeft me meestal foutmeldingen terug zoals:
ORA-12560: TNS:protocol adapter error
ORA-12514: TNS:listener kent momenteel geen service
Bij voorbaat hartelijk dank!!!
heb je geprobeerd
sqlplus username/password@host:port/service
sqlplus x/y@c:a/b
moderne versies van sqlplus (versie 11 of nieuwer) begrijpen deze syntaxis en je hebt geen tnsnames.ora bestand nodig.
Het eenvoudigste is om het bestand tnsnames.ora te gebruiken om verbinding te maken met de database. Bewerk het daarvoor en voeg een nieuwe regel toe: Dit bestand bevindt zich normaal in de $ORACLE HOME\NETWORK\ADMIN directory.
myDb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = c)(Port =a))
)
(CONNECT_DATA =
(SERVICE_NAME =b)
)
)
en dan kan je verbinding maken met de db:
sqlplus x/y@myDb
Misschien is uw database niet opgestart. Als de machine opnieuw is opgestart en de instantie is niet ingesteld op autostart (en hij is niet handmatig gestart), dan moet u de service misschien zelf starten.
Als je toegang hebt tot het Services scherm, kun je het vanaf daar doen; of, je kunt het vanaf de commandoregel doen.
Ga naar Command prompt en voer de volgende commando's in:
set oracle_sid=ORCL
net start oracleserviceORCL
De eerste stelt de Oracle SID in; de tweede start de service.