Disons que j'ai une base de données Oracle. J'ai un nom d'utilisateur = x, un mot de passe = y, une base de données = z. Je connais également le port = a, le SID = b, le nom d'hôte = c.
Alors comment dois-je faire pour me connecter correctement ? J'ai utilisé de nombreuses options comme :
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)))
L'envoi de ces lignes de commande me renvoie généralement des messages d'erreur comme :
<br ; ORA-12560 : TNS:protocol adapter error
ORA-12514 : TNS:listener ne connaît pas de service actuellement
Merci d'avance !
avez-vous essayé
sqlplus username/password@host:port/service
sqlplus x/y@c:a/b
Les versions modernes de sqlplus (version 11 ou plus récente) comprennent cette syntaxe et vous n'avez pas besoin d'un fichier tnsnames.ora.
Le plus simple est d'utiliser le fichier tnsnames.ora pour se connecter à la base de données. Pour cela, éditez-le et ajoutez une nouvelle entrée : Ce fichier se trouve normalement dans le répertoire $ORACLE HOME\NETWORK\ADMIN.
myDb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = c)(Port =a))
)
(CONNECT_DATA =
(SERVICE_NAME =b)
)
)
et ensuite vous pouvez vous connecter à la base de données :
sqlplus x/y@myDb
Votre base de données n'est peut-être pas en service. Si la machine a été redémarrée et que l'instance n'est pas configurée pour un démarrage automatique (et qu'elle n'a pas été démarrée manuellement), vous devrez peut-être démarrer le service vous-même.
Si vous avez accès à l'écran Services, vous pouvez le faire à partir de cet écran ; vous pouvez également le faire à partir de la ligne de commande.
Allez à l'invite de commande et entrez les commandes suivantes :
set oracle_sid=ORCL
net start oracleserviceORCL
La première définit le SID Oracle ; la seconde démarre réellement le service.