Capacio, Paula J wrote: >>Hello, I'm hoping someone can explain why one of these connect >>statements work and the other doesn't. The script sets environment >>values as such: $ENV{ORACLE_HOME} = "/usr/oracle/product/8.1.7_64"; >>$ENV{ORACLE_SID} = $db_alias; #$db_alias passed to script via >>$ARGV[1] >>my $dbh; >> > Louis wrote: >Paula, print these two variables out before the entry into the logical >test - just to see what they are. Send this back in a reply. Make this >the case where the "else" clause should execute, as an example. >print "$db_alias =? $ENV{ORACLE_SID}\n"; The code now looks like: my $dbh; if ($method =~ /2/) { #this works $dbh = DBI->connect('', "scott/tiger", '', 'Oracle') or die "Connect failed: $DBI::errstr\n"; }else{ #this doesn't printIt("Just prior to connect..."); printIt("$db_alias =? $ENV{ORACLE_SID}"); printIt("\$ENV{ORACLE_HOME} to: $ENV{ORACLE_HOME}\n"); $dbh = DBI->connect("dbi:Oracle:$db_alias",'scott','tiger') or die "Connect failed: $DBI::errstr\n"; } And the new output: Just prior to connect... mp3i =? mp3i $ENV{ORACLE_HOME} to: /usr/oracle/product/8.1.7_64 DBI->connect(mp3i) failed: ORA-12154: TNS:could not resolve service name
(DBD ERROR: OCIServerAttach) at ./OraConn3.pl line 52 Connect failed: ORA-12154: TNS:could not resolve service name (DBD ERROR: OCIServerAttach) >>Does this imply that the first case does not use TNS service names? >>The DBI docs state: "There is no standard for the text following the >>driver name. Each driver is free to use whatever syntax it wants. The >>only requirement the DBI makes is that all the information is supplied >>in a single string. You must consult the documentation for the drivers >>you are using for a description of the syntax they require." The >>DBD::Oracle doc doesn't go into detail on the variations and what they >>imply. Can anyone provide some insight? >> >>The issue I'm really trying to address is that both connection >>variations work on an HP/UX 11.00 server, perl version: 5.006001, DBI >>(version 1.20), DBD::Oracle (version 1.12); but on an HP/UX 11.11 >>server with the same perl and oracle libraries/versions only the first >>variation works. I'm trying to determine why and suggest a resolution. >>BTW, I'm a lowly programmer (aka: hacker); I'm not the DBA or the >>server sysadmin and the DBA doesn't know perl. > >Thanks in advance. >Paula > >