Comparez les prix des domaines et des services informatiques des vendeurs du monde entier

SQLPLUS error:ORA-12504: TNS:listener Il n'y avait pas de nom de service dans CONNECT_DATA

j'ai téléchargé SQLPLUS avec Oracle:

http://www.oracle.com/technetw ... .html
Basic Lite et SQL*Plus

Puis j'ai allumé SQL*Plus:


c:\Program Files\Oracle\instantclient_12_1>sqlplus /nolog

SQL*Plus: Release 12.1.0.2.0 Production on Wed Apr 15 15:25:36 2015

Copyright /c/ 1982, 2014, Oracle. All rights reserved.


Et essayé de se connecter à la base de données:


connect user\password@hostname


Et reçu un message d'erreur:


ERROR:
ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA


Qu'est-ce que je rate?

J'ai classé les demandes offertes par Yakub et


SQL> select sys_context/'USERENV','SERVICE_NAME'/ from dual;

SYS_CONTEXT/'USERENV','SERVICE_NAME'/
--------------------------------------------------------------------------------

SYS$USERS

SQL> select sys_context/'USERENV','SID'/ from dual;

SYS_CONTEXT/'USERENV','SID'/
--------------------------------------------------------------------------------

877

SQL>
Invité:

Denis

Confirmation de:

Vous manquez le nom du service:


SQL> connect username/password@hostname:port/SERVICENAME


EDIT

Si vous pouvez vous connecter à la base de données à partir d'un autre ordinateur, essayez de l'exécuter là-bas:


select sys_context/'USERENV','SERVICE_NAME'/ from dual


et


select sys_context/'USERENV','SID'/ from dual

Gilbert

Confirmation de:

J'ai rencontré exactement le même problème dans les mêmes circonstances. Je n'ai pas de fichier tnsnames.ora, Et je voulais utiliser SQL*Plus Avec un format simple de l'identifiant de connexion dans l'invite de commande. J'ai résolu ce problème comme suit.

À
http://docs.oracle.com/databas ... UG358
Un exemple est:

sqlplus hr@\ " sales-server:1521/sales.us.acme.com\"

Faites attention à deux points importants:

L'identifiant de connexion est indiqué entre guillemets. Vous avez deux options:

Vous pouvez utiliser la commande SQL*Plus CONNECT Et juste passer la ligne dans des citations.

Si vous souhaitez spécifier les paramètres de connexion de l'invite de commande, vous devez ajouter une ligne d'ensemble comme boucliers avant des citations. Il instruit bash Fournir des devis dans SQL*Plus.

Le nom du service doit être spécifié sur le formulaire FQDN tel qu'il est configuré par votre DBA.

J'ai trouvé ces bonnes questions à définir le nom du service via la connexion existante:
https://coderoad.ru/22399766/
,
https://coderoad.ru/6288122/
. Essayez, par exemple, cette demande:


SELECT value FROM V$SYSTEM_PARAMETER WHERE UPPER/name/ = 'SERVICE_NAMES'

Damien

Confirmation de:

Juste un peu d'observation: vous mentionnez constamment conn usr\pass, Et c'est une faute de frappe, non? Parce que ça devrait être conn usr/pass. ou il diffère de Unix basé OS?

De plus, juste pour être sûr: si vous utilisez tnsnames, Votre ligne de journalisation sera différente de celle de l'utilisation de la méthode d'entrée à partir de laquelle vous avez lancé cette rubrique.

tnsnames.ora Doit être B. $ORACLE_HOME$\network\admin. C'est à la maison Oracle sur la voiture avec laquelle vous essayez de vous connecter, donc dans votre cas votre PC. Si vous avez quelques oracle_homes Et vous voulez utiliser un seul tnsnames.ora, Vous pouvez définir la variable d'environnement tns_admin /par exemple, set TNS_ADMIN=c:\oracle\tns/ placer tnsnames.ora Dans ce catalogue.

Votre méthode de connexion originale /usr/pwd@10.15.240.13:port/servicename/ devrait toujours fonctionner. Jusqu'à présent, je pense que vous avez toutes les informations, à l'exception du numéro de port, qui, je suis sûr que votre DBA Pouvoir te donner. Si cette méthode ne fonctionne toujours pas, alors l'adresse du serveur IP Indisponible à votre client, ou c'est un problème de pare-feu /Verrouillage d'un port spécifique/, ou quelque chose d'autre non connexe /directement/ avec Oracle ou SQL*Plus.

!
Avec respect,
Remko

Pour répondre aux questions, connectez-vous ou registre