Home » Open Source » Programming Interfaces » 12154 with Perl Oracle DBD and instant client (Perl, Linux, Oracle Instant Client 11.1)
12154 with Perl Oracle DBD and instant client [message #385904] Wed, 11 February 2009 17:15 Go to next message
kwiqsilver
Messages: 1
Registered: February 2009
Junior Member
I'm trying to connect to a remote oracle DB with a Perl script using DBI and the Oracle instant client and I get the 12154 error. I do not have a tnsnames or other configuration type file. Here's the relevant code:
$ENV{LD_LIBRARY_PATH} = "$ENV{LD_LIBRARY_PATH}://usr/lib/oracle/11.1/client64/lib/";
$ENV{ORACLE_HOME} = "/usr/lib/oracle/11.1";

my $dbh = DBI->connect("dbi:Oracle:$dbName\@$dbHost:$dbPort", $dbUser, $dbPass) or
          die("DB Error '$DBI::errstr");

Output:
DBI connect('dbName@host:1521','user',...) failed: ORA-12154: TNS:could not resolve the connect identifier specified (DBD ERROR: OCIServerAttach) at ./cgi-bin/assigned.pl line 28
DB Error 'ORA-12154: TNS:could not resolve the connect identifier specified (DBD ERROR: OCIServerAttach) at ./cgi-bin/assigned.pl line 28.


A coworker is using the same connection values to connect via Python. I can telnet to the box on port 1521 (I don't know of any oracle commands I can run to verify that it is oracle that is listening on the port).


Client:
OS: RedHat Linux Enterprise 4.3
Oracle: InstantClient 11.1.0.7 basic and devel
Perl: 5.10
DBD::Oracle: 1.22

Server:
Unknown clearquest machine.
Re: 12154 with Perl Oracle DBD and instant client [message #385930 is a reply to message #385904] Wed, 11 February 2009 23:24 Go to previous message
Michel Cadot
Messages: 68624
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator
ORA-12154: 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.

Regards
Michel
Previous Topic: Import Excel using ODBC importer
Next Topic: Connect Excel-Oracle EBS using HTTP
Goto Forum:
  


Current Time: Thu Mar 28 08:31:35 CDT 2024