Попытка выполнить хранимую процедуру в Oracle из PHP кода - PullRequest
0 голосов
/ 16 января 2020

Я уже искал в Интернете, и ответы всегда одинаковы, с небольшими отклонениями, но я не получил никакого результата.

В Oracle (версия 11.2.0.40) я написал хранимую процедуру для тестирования, которое удаляет только записи из таблицы в соответствии с переданным аргументом. В PHP через PDO я создал соединение и вызвал хранимую процедуру, передав ей параметр для удаления записей.

Однако ответа нет, даже по ошибке в CATCH.

В качестве теста я переименовал хранимую процедуру в Oracle и запустил PHP, который затем обвинил ошибку в том, что процедуры не существует, что можно было бы ожидать.

Ниже процедура и ниже код PHP:

CREATE OR REPLACE PROCEDURE 
 p_PesquisaRateio (siglaUsuario IN VARCHAR2)
  AS
BEGIN
DELETE FROM RCR.CST_1410_RATEIO_CRGOMSIM WHERE USUARIO = siglaUsuario;
commit;
END;

----- Метод класса для подготовки и выполнения процедуры

public function passarParametro($sentencaCriacao,$siglaUsuario) {
  try {
    $sql_stmt = $this->dbh->prepare($sentencaCriacao);
    $sql_stmt->bindParam(':siglaUsuario',$siglaUsuario);
    $sql_stmt->execute();
  }
  catch (PDOException $erro){
    echo "Não foi possivel excluir os dados do banco: ".$erro->getMessage();
  }
}

----- Подготовка и вызов процедура

require("PDOConnection.php");
$dbh = new PDOConnection();
 $sentencaCriacao ="Call p_PesquisaRateio(:siglaUsuario)";
$dbh->passarParametro($sentencaCriacao,"'".$siglaUsuario."'");

---- Тестирование в PL SQL Разработчик

begin
p_PesquisaRateio('MSIM' );
end;

Вышеуказанное выполнение в порядке, данные удаляются в таблице, но не через PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...