Perl 5.8, DBI 1.607, DBI::Oracle 1.21, Oracle 11g (11.1.0)

Any script I try to run results in the error:

Database connection not made: ORA-12505: TNS:listener does not currently know of SID given in connect descriptor (DBD ERROR: OCIServerAttach) at ./testdbi.pl line 9.

This script works correctly on our old server running 8.1.6.

tnsping works, so I'm at a loss:

[EMAIL PROTECTED]:/opt/lampp/logs> tnsping phmweb.pharmacy.arizona.edu

TNS Ping Utility for Linux: Version 11.1.0.6.0 - Production on 29- JUL-2008 11:34:53

Copyright (c) 1997, 2007, Oracle.  All rights reserved.

Used parameter files:
/home/oracle/product/11.1.0/db_1//network/admin/sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = tonic2.pharmacy.arizona.edu)(PORT = 1521))) (CONNECT_DATA = (SID = phmweb.pharmacy.arizona.edu)))
OK (0 msec)

The Oracle environment variables are set properly; sqlplus works just fine when invoked using the 'user'@'tnsname_of_server' login, another indication that TNSNames is working.

Here is the code I'm using:

#!/usr/bin/perl
use strict;
use DBI;
#$ENV{'ORACLE_HOME'}="/home/oracle/product/11.1.0/db_1";
#$ENV{'TNS_ADMIN'}="/home/oracle/product/11.1.0/db_1/network/admin";
sub PrintHeader {
  return "Content-type: text/html\n\n";
}
my $dbh = DBI->connect( 'dbi:Oracle:phmweb.pharmacy.arizona.edu',
                        'people',
                        'password',
) || die "Database connection not made: $DBI::errstr";
my $sql = "select sysdate from dual";
my $ret = $dbh->prepare($sql);
$ret->execute();
print &PrintHeader;
#DBI::dump_results($ret);
my ($thedate);
$ret->bind_columns(\$thedate);
while(($thedate) = $ret->fetchrow_array) {print "Today's date is $thedate \n";}
$dbh->disconnect();
exit;

The ENV stuff was attempts to see if it was some environmental issue, this made no difference.

--
Bruce Johnson
University of Arizona
College of Pharmacy
Information Technology Group

Institutions do not have opinions, merely customs


Reply via email to