J'exécute Windows 7 64 bits, en utilisant Oracle DB 11g R2 pour Windows 64 bits. J'ai Oracle SQL Developer version 3.0 (4.0.2.15.21) comme interface graphique pour ma base de données.
J'ai suivi les instructions de cet article sur la façon d'importer un fichier Oracle .DMP. J'ai émis cette commande dans l'invite de commande: C:\>imp sys@dev/password12345 FROMUSER=FOOADMIN TOUSER=FOOADMIN file=c:\fooadmin.dmp full=yes
Il me demande ensuite un mot de passe dans lequel j'entre le bon, puis je reçois cette erreur:
IMP-00058: Oracle error 12154 encountered
ORA-12154: TNS:could not resolve the connect identifier specified
IMP-00000: Import terminated unsuccessfully
Question réelle: Comment puis-je corriger cette erreur et pouvoir importer correctement le fichier .dmp? Ou quelles sont les étapes vers lesquelles je peux me diriger pour que cela fonctionne ...?
J'ai parcouru d'innombrables articles sur cette même question. Mon tnsnames.ora , listener.ora , & sqlnet.ora se trouvent dans ce répertoire: C:\Oracle\product\11.2.0\dbhome\NETWORK\ADMIN
Ma connexion dans mon fichier tnsnames.ora ressemble à ceci (j'ai également essayé de mettre le nom de mon ordinateur comme hôte, au lieu de 127.0.0.1). ..
DEV =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DEV)
)
)
J'ai ajouté ce qui suit à mon CHEMIN (je me rends compte qu'il peut y avoir des éléments inutiles là-dedans, je voulais juste être du bon côté.): C:\Oracle\product\11.2.0\dbhome\bin;C:\Oracle\product\11.2.0\client_1;C:\Oracle\product\11.2.0\client_1\bin;%Oracle_HOME%\bin;
J'ai également créé deux autres variables dans mes variables système ...
TNS_ADMIN
C:\Oracle\product\11.2.0\dbhome\NETWORK\ADMIN
TNS_NAMES
C:\Oracle\product\11.2.0\dbhome\NETWORK\ADMIN
Utilisez ceci sous Windows (trois guillemets doubles imbriqués):
exp system/password_for_system@dev file=c:\fooadmin.dmp full=yes
imp """sys/password12345@dev as sysdba""" FROMUSER=FOOADMIN TOUSER=FOOADMIN file=c:\fooadmin.dmp
En général, imp fonctionnerait comme prévu avec le compte sys, il n'est tout simplement pas recommandé. Mais exp avec le compte sys pourrait éventuellement produire un fichier de vidage incohérent en silence. Il vaut donc mieux l'éviter, par exemple utilisez system
.