php4 can't find tnsnames.ora oracle9 but can connect if description hardcoded
| From: | neil smith | Date: | Tue, 19 Apr 2005 08:47:17 +0000 |
| Subject: | php4 can't find tnsnames.ora oracle9 but can connect if description hardcoded | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-213325@lists.php.net to get a copy of this message | ||
Hello,
I have test script that can connect to the oracle database. It doesn't require tnsnames.ora because I define the database alias in the script itself. It looks like this:
echo "TWO_TASK=".getenv("TWO_TASK")."<br>";
echo "LD_LIBRARY_PATH=".getenv("LD_LIBRARY_PATH")."<br>";
echo "ORACLE_BASE=".getenv("ORACLE_BASE")."<BR>";
echo "ORACLE_HOME=".getenv("ORACLE_HOME")."<BR>";
echo "TNS_ADMIN=".getenv("TNS_ADMIN")."<BR>";
echo "NLS_LANG=".getenv("NLS_LANG").".<br>";
# this allows a successful connection
$db = " (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP) (HOST =testdb.boo.com)(PORT = 1521))
(CONNECT_DATA= (SID = testdb))
)";
// these don't work.. php can't seem to find tnsnames.ora
# $db = "testdb.boo.com";
//$db = "testdb.boo.com";
# $db = "testdb";
//echo $testdb;
$odbc = OCILogon("test/test","test",$db);
if ($odbc == false){
$msg = OCIError($odbc)."<BR>";
} else {
echo "success!!!<br>";
}
My problem is is that when I try to use the database alias in tnsnames.ora I get an ora-12154 error. I get this despite the facts that oracle_home, tns_admin and everything else is defined in the script and the tnsnames.ora contains exactly the same alias as I use in the hardcoded version (see the uncommented $db above).
sqlnet.ora contains a value name_domain that apparently is appended to the alias in tnsnames.ora but accounting for this still doesn't let me connect to oracle . It's as if tnsnames.ora cannot be found. I've changed the permissions to 777 for the whole directory structure and I can successfully use tnsnames.ora with sqlplus or tnsping.
Does anybody have any ideas what is going wrong? Is this a bug?
thanks,
neil