0

I am connecting to Oracle server using PLSQL,this is my tnsnames.ora(C:\Oracle\ora90\network\ADMIN) config:

  MY_ERP =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME =  orcl)
    )
  )

and this is my env variable of ORACLE_HOME:

C:\Oracle\ora90

When I am connecting to server,it throw this error:

error while trying to retrieve text for error ORA-12154

Am I missing something? The OS: Windows 10. PLSQL:7.1.4.1390. Oracle 9.

2

If those lines really start with spaces in tnsnames.ora, that will not work. Remove the leading spaces in the first line (MY_ERP =), becasue an alias can not start with a space.

You can also try setting TNS_ADMIN to C:\Oracle\ora90\network\ADMIN, because ORA-12154 means the connection identifier could not be resolved, mabybe PL/SQL Developer searches for tnsnames.ora somewhere else:

$ oerr ora 12154
12154, 00000, "TNS:could not resolve the connect identifier specified"
// *Cause:  A connection to a database or other service was requested using
// a connect identifier, and the connect identifier specified could not
// be resolved into a connect descriptor using one of the naming methods
// configured. For example, if the type of connect identifier used was a
// net service name then the net service name could not be found in a
// naming method repository, or the repository could not be
// located or reached.
// *Action:
//   - If you are using local naming (TNSNAMES.ORA file):
//      - Make sure that "TNSNAMES" is listed as one of the values of the
//        NAMES.DIRECTORY_PATH parameter in the Oracle Net profile
//        (SQLNET.ORA)
//      - Verify that a TNSNAMES.ORA file exists and is in the proper
//        directory and is accessible.
//      - Check that the net service name used as the connect identifier
//        exists in the TNSNAMES.ORA file.
//      - Make sure there are no syntax errors anywhere in the TNSNAMES.ORA
//        file.  Look for unmatched parentheses or stray characters. Errors
//        in a TNSNAMES.ORA file may make it unusable.
//   - If you are using directory naming:
//      - Verify that "LDAP" is listed as one of the values of the
//        NAMES.DIRETORY_PATH parameter in the Oracle Net profile
//        (SQLNET.ORA).
//      - Verify that the LDAP directory server is up and that it is
//        accessible.
//      - Verify that the net service name or database name used as the
//        connect identifier is configured in the directory.
//      - Verify that the default context being used is correct by
//        specifying a fully qualified net service name or a full LDAP DN
//        as the connect identifier
//   - If you are using easy connect naming:
//      - Verify that "EZCONNECT" is listed as one of the values of the
//        NAMES.DIRETORY_PATH parameter in the Oracle Net profile
//        (SQLNET.ORA).
//      - Make sure the host, port and service name specified
//        are correct.
//      - Try enclosing the connect identifier in quote marks.
//
//   See the Oracle Net Services Administrators Guide or the Oracle
//   operating system specific guide for more information on naming.

Finally: Oracle 9 was release 18 years ago, install a recent client, if your database is compatible with it.

1
  • The MY_ERP = has no space.I try to add path C:\Oracle\ora90\network\ADMIN to TNS_ADMIN env variable.But not work,I try to set the C:\Oracle\ora90\ permission to every one. It does not works.I don't know where going wrong. @Balazs Papp
    – Dolphin
    Mar 21 '19 at 12:23
1

You actually have two problems. First, you are getting an ORA-12154 (at least that's what your subject line says), but in trying to find the text to report the error message, oracle cannot find the message file. This latter problem should be solved first,and in my 20+ years experience, it is invariably due to ORACLE_HOME not being set correctly.

Show us the output of:

echo %ORACLE_HOME%
tnsping my_erp

use copy and paste of the text of the cmd session to show us both the full command issued and the full result.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.