pdo_oci_handle_factory: ошибка при попытке получить текст для ошибки ORA-01804

Я использую 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);
}

1

Решение

Сначала попробуйте подключиться как 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,
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]