Sidebar


Si al tratarse de conectar con sqlplus a una base de datos reciben el error ORA-12154, puede deberse a que tiene algún caracter en el password, que oracle interpreta de manera diferente.

Una forma fácil de diagnosticar esto, es cuando colocamos el password incorrecto, y recibimos el error:

ORA-01017: invalid username/password; logon denied

Pero al momento de colocar el correcto, recibimos:

ORA-12154: TNS:could not resolve the connect identifier specified

Esto se debe a que si tecleamos nuestro password correcto, este contiene caracteres que oracle interpreta de manera diferente.Si nuestro password contiene arroba "@", y tratamos de entrar a oracle, éste interpretara lo que sigue a la arroba como una instancia.

oracleserver(oracle):ORCL:oracle$ sqlplus test/Bcp@2010

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Oct 18 10:10:42 2010

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified

En este caso, oracle piensa que 2010 es el nombre de nuestra instancia, para corregirlo debemos de indicarle que la arroba es parte del password colocándolo entre comillas, y utilizando diagonal invertida para escapar las comillas.

oracleserver(oracle):ORCL:oracle$ sqlplus test/\"Bcp@2010\"

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Oct 18 10:15:58 2010

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining Scoring Engine
and Real Application Testing options

Otra forma es la siguiente:

oracleserver(oracle):ORCL:oracle$ sqlplus /nolog

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Oct 18 10:21:11 2010

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

SQL:.:(.):.> connect test/"Bcp@2010"
Connected.
SQL:.:(.):.>

Si no queremos mostrar el password, entonces debemos de teclearlo cuando lo solicite sqlplus, pero colocándolo entre comillas (como si fuera parte del password, pero en realidad solo le estamos indicando que el password se encuentra entre las comillas).

oracleserver(oracle):ORCL:oracle$ sqlplus test

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Oct 18 10:24:38 2010

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Enter password:    <-- Colocar el password de la siguiente manera "Bcp@2010" (Teclear entre comillas)

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining Scoring Engine
and Real Application Testing options

SQL:.:(.):.>


Tips BD