Я подключаюсь к БД Oracle с помощью инструмента «Oracle SQL Developer» и могу успешно выполнять операторы, подобные следующим (например):
DECLARE
p0_ VARCHAR2(32000) := 'Charlie';
p1_ FLOAT := 35;
p2_ VARCHAR2(32000) := 'Spain';
...
BEGIN
Users.Validate(p0_,p1_,p2_ ....);
END;
Кроме того, я могу выполнять достаточно простые запросы, такие как Select * from ...
.Сервер отвечает через 4-5 секунд.
Моя проблема: у меня есть проект Laravel 5.7.13 с оракулом (модуль yajra / laravel-oci8), и он работает нормально, когда я запускаю простые запросы, такие как Select ...
:
DB::select("Select ...");
Но я не могу запустить начальный оператор:
DB::select("DECLARE
p0_ VARCHAR2(32000) := 'Charlie';
p1_ FLOAT := 35;
p2_ VARCHAR2(32000) := 'Spain';
...
BEGIN
Users.Validate(p0_,p1_,p2_ ....);
END;");
Я также пытался использовать оператор DB::Select(DB::raw("DECLARE ..."))
и DB::Statement(...)
, но не работает.
Я использую Xampp и apache, и когда я пытаюсь выполнить эти операторы, Apache не отвечает, никаких ошибок, просто похоже, что пытается выполнить оператор, но не завершает работу, даже если у меня тайм-аут 10 секунд (max_execution_time=10
в php.ini, а также принудительно введен моим php-кодом с инструкцией: ini_set('max_execution_time', 10)
).
Как я могу выполнить такое утверждение из Laravel?Может быть проблема с разрешениями пользователя?(Я настроил в Laravel и "Oracle SQL Developer" того же пользователя и соединение)
Спасибо!