Я использую Laravel 5.5, php 7.1.9 и oracle 10g
я не знаю, подключен ли я к базе данных или нет, и если да, то проблема в моем коде?
PDOException SQLSTATE [HY000]: pdo_oci_handle_factory: ошибка при
пытается получить текст для ошибки ORA-01804
(Вн \ Pdo_Oci \ oci_driver.c: 640)
oracledb.php
return [
'oracle' => [
'driver' => 'pdo',
'tns' => env('DB_TNS', 'XE'),
'host' => env('DB_HOST', 'GREEN-PC'),
'port' => env('DB_PORT', '1521'),
'database' => env('DB_DATABASE', 'XE'),
'username' => env('DB_USERNAME', 'esprit'),
'password' => env('DB_PASSWORD', 'esprit'),
'charset' => '',
'prefix' => '',
'quoting' => false,
],
];
в моем контроллере
public function show()
{
$res = DB::table('esp_etudiant')
->where('id_et','1630242')
->get();
print_r($res);
}
Сначала попробуйте подключиться как SYSDBA
,
$ sqlplus / as sysdba
Существует несколько причин ошибки ORA-01804:
$LD_LIBRARY_PATH $ORACLE_HOME $NLS_LANG
$ORACLE_HOME
каталог. Вы должны иметь отдельный ORACLE_HOME
для каждого выпуска Oracle. Если это так, то:Первое, что нужно сделать, это проверить, установлен ли ORA_TZFILE, и если это так,
удалите его и перезапустите базу данных и слушателя. Oracle тогда попробует
загрузить файл $ ORACLE_HOME / oracore / zoneinfo / timezlrg.dat.Если по какой-то причине файл, который Oracle хочет использовать, недоступен
тогда это является причиной проблемы.Если файл присутствует, то альтернативная причина ошибки может
Впрочем, Oracle не может загрузить файл из-за проблем с правами доступа.Если все вышеприведенное верно, то это может быть поврежденный файл .dat.
chmod 444
) для файлов в OCCI library
, Других решений пока нет …