Ошибка при коннекте - ORA-12154

predator

web designer
Ошибка при коннекте - ORA-12154

вопрос уже поднимался, но видно у меня специфический случай )

winXPsp2
oracle10g XE + instantclient 10.2
php 5.2.0 (php_oci8.dll - из инсталляхи, той-же версии)
Apache 2.0.59

tnsnames.ora:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = sv-07.sv.local)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)

ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)



поначалу вообще не работало
после
ORACLE_HOME=D:\www\oraclexe\app\oracle\product\10.2.0\server
функции начали работать только вывалилось ошибка при коннекте

воот загвоздка, как я думаю в SID
но я уже пробовал
SID=CLRExtProc
SID_NAME=CLRExtProc

короче нужна помощь, перерыл уже кучу всего но решения не нашёл

-~{}~ 03.01.07 19:30:

дословно - ORA-12154: TNS:could not resolve the connect identifier specified

-~{}~ 03.01.07 20:02:

в PATH у меня прописаны
D:\www\oraclexe\app\oracle\product\10.2.0\server
и
D:\www\instantclient_10_2\

-~{}~ 03.01.07 20:05:

скрипт взят из php-мана

PHP:
<?php 

//phpinfo();die();
 $conn = oci_connect('hr', 'hr', 'hr');
 if (!$conn) {
   $e = oci_error();
   print htmlentities($e['message']);
   exit;
 }

 $query = 'SELECT * FROM DEPARTMENTS';

 $stid = oci_parse($conn, $query);
 if (!$stid) {
   $e = oci_error($conn);
   print htmlentities($e['message']);
   exit;
 }

 $r = oci_execute($stid, OCI_DEFAULT);
 if (!$r) {
   $e = oci_error($stid);
   echo htmlentities($e['message']);
   exit;
 }

 print '<table border="1">';
 while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) {
   print '<tr>';
      foreach ($row as $item) {
        print '<td>'.($item?htmlentities($item):'&nbsp;').'</td>';
      }
      print '</tr>';
 }
 print '</table>';

 oci_close($conn);




?>
-~{}~ 03.01.07 20:41:

sqlplus
коннектится без проблем

-~{}~ 03.01.07 21:19:

Всё у меня оказывается работало ))
но я в oci_connect указывал не имя оболочки а имя конкретной бд
из-за этого и не работало
вот ведь ))
 

himic

Новичок
У тебя коннекты к серверу неправильно прописаны или инстант клиент их не видит
добавь в переменную окружения TNS_ADMIN=путь к инстанту и в паку инстанта кинь файл tnsnames.ora
если не получится то соединяйся вручную
Код:
<?
$db1 = "(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.130.1.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = ORCL)
      (SERVER = DEDICATED)
    )
  )
"; 
                                            
@$c=OCILogon("login", "pass", $db1) or die("<h1>DB is not accessible");
?>
 
Сверху