Подключение к БД Oracle

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
AndryDl
Сообщения: 4
Зарегистрирован: 2014.11.07, 00:10

Подключение к БД Oracle

Сообщение AndryDl »

Пробовал подключиться в лоб как в документации
'db' => [
'class'=>'yii\db\Connection',
// 'driverName'=>'oci8',
'dsn' => 'oci:dbname=//192.168.1.12:1521/myuser;charset=AL32UTF8;', // Oracle
'username' => 'myuser',
'password' => '******,
'tablePrefix' => 'tbl_',
]

could not find driver↵ Caused by: PDOException could not find driver
in ....\advanced\vendor\yiisoft\yii2\db\Connection.php at line 579

добавляем 'driverName' получаем, что логично ODBC драйвера нет
Connection does not support reading schema information for 'oci8' DBMS.

Пробовал прикрутить oci8Pdo от yii 1 , валится с ошибкой , что понятно расширение пытается наследоваться от CDbConnecton. PHP умеет общаться с ораклом только посредством extension=php_oci8_*.dll, если конечно у вас Oracle не ниже 10 . Где взять драйвер который работает через oci8 с YII2 ? За ранее благодарен за помощь.

p.s. Драйвер рабочий для Yii 1.* ,брал здесь https://github.com/yjeroen/oci8Pdo.git . Yii 1.* с ним работает.
AndryDl
Сообщения: 4
Зарегистрирован: 2014.11.07, 00:10

Re: Подключение к БД Oracle

Сообщение AndryDl »

Решение нашлось неожиданно просто. Используйте php_pdo_oci. Я как человек довольно долго работавший с Oracle из под нативного PHP, знал что рабочий драйвер только один OCI8. Соответственно его и подключал. Проверял тоже нативным oci_connect все работало. Yii 1.* тоже был прикручен OCI8 и все работало,а Yii2 pdo_oci - разрыв шаблона. Может пригодится кому нибудь , кто как и я работал раньше только с oci8 и пытается его прикрутить на привычное место. 8-)
prot
Сообщения: 34
Зарегистрирован: 2013.12.26, 21:02
Контактная информация:

Re: Подключение к БД Oracle

Сообщение prot »

Всем привет!
У меня проблема с подключением к базе. Вываливается ошибка:
SQLSTATE[HY000]: pdo_oci_handle_factory: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

Настройки выглядят так:

Код: Выделить всё

'dsn' => 'oci:dbname=//dev.host.org:1521/appdev;charset=AL32UTF8;',
'username' => 'dev_ui',
'password' => 'password'
В чем проблема?
prot
Сообщения: 34
Зарегистрирован: 2013.12.26, 21:02
Контактная информация:

Re: Подключение к БД Oracle

Сообщение prot »

Все разобрался. Оказывается SID: appdev, а Service name: appdev.host.org
Теперь все работает.
Ответить