Я столкнулся с проблемой, на устранение которой потратил часы. Вот в чем проблема:
Я пытаюсь подключиться к удаленному серверу Oracle 8i с помощью мгновенного клиента Oracle 11: вот моя строка подключения в PHP:
$ conn = oci_connect ('db_user', 'db_pass', «db_ip / db_service»);
db_ip - это IP-адрес сервера, например «12.34.56.78».
db_service - это служба сервера, например «test».
Показанная ошибка
ORA-12514: TNS: слушатель в настоящее время не знает службы, запрошенной в дескрипторе подключения
Я мог бы использовать того же клиента для подключения к другому серверу Oracle 10g. Код PHP такой же, только измените db_user, db_pass или db_ip. db_service не предоставляется.
Я не использую tnsnames.ora ни для сервера oracle 10g, ни для сервера oracle 8i. Я просто использую простой IP-адрес сервера. Имеет ли это значение?
Server using: Windows Server 2008 R2
PHP: php 5.2.17
Oracle Instant Client: 11_2
Любые идеи будут оценены по достоинству.
Обновленный PHP теперь также может работать. Моя папка php находится в Programfiles (x86), скобки не допускаются. Поэтому я переместил всю папку в C: \ php и настроил IIS для изменения версии php. Ссылка: http://stackoverflow.com/questions/9215983/php-cant-connect-but-sqlplus-can
Обновлено Большое спасибо за помощь Джастина. Оно работает!!! Я просто сменил sid на scblive вместо SCBLIVE. Их база данных называется scblive. Я все еще использую 10.2.0.1, используя sqlplus, я могу подключиться как к oracle 10g, так и к oracle 8i. Большое спасибо !!
Это имена tns, которые работают для Oracle 8i:
scblive = (ОПИСАНИЕ = (АДРЕС = (ПРОТОКОЛ = TCP) (ХОСТ = [ip oracle 8i]) (ПОРТ = 1521)) (CONNECT_DATA = (СЕРВЕР = ВЫДЕЛЕННЫЙ) (SID = scblive)))
Еще одна проблема, обнаруженная в коде php, показывает ту же ошибку для oracle 10g или oracle 8i.
ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения
Я просто использовал следующую строку подключения:
$ conn = oci_connect ('имя_пользователя', 'пройти', 'scblive');
для oracle 10g, если я использовал ту же строку подключения, что и раньше, ошибка все равно отображается:
$ conn = oci_connect ('имя_пользователя', 'пройти', [IP-адрес Oracle 10g]);
Любые идеи?
Более раннее обновление: спасибо за помощь @ Justin. пробовали 10.2.0.5, 10.2.0.4 или 10.1.0.0, ни один из них не работал. Я видел матрицу. кажется, что мгновенный клиент 8.1.7 или мгновенный клиент 9.0.1 может работать как для Oracle 10g, так и для Oracle 8i. У кого-нибудь есть ссылка на эти файлы? Oracle может предоставить только 10.1.0.5 и новее.