Как вызвать хранимую процедуру оракула, имеющую параметр in и out, используя codeigniter? - PullRequest
0 голосов
/ 03 апреля 2019

Я уже установил кодовое имя dbdriver в "oci8".

Для справки, вот моя хранимая процедура. Это всего лишь мой пример хранимой процедуры.

CREATE OR REPLACE STORED PROCEDURE sp_sample(
in_id IN VARCHAR2, 
out_code OUT varchar, 
out_desc OUT varchar) IS

var_result VARCHAR2(100);

CURSOR GetStatus (my_id IN NUMBER) IS
SELECT status
FROM tbl_sample
WHERE id= my_id;

BEGIN
     OPEN GetStatus(in_id);
           LOOP
     FETCH GetStatus into var_result;
     EXIT WHEN GetStatus%NOTFOUND;
           END LOOP;
     CLOSE GetStatus;

     IF(result != 'A')
          UPDATE tbl_sample SET status = 'A'
          WHERE id = in_id;

          COMMIT;

          out_code := '00';
          out_desc := 'Success';
     ELSE
          out_code := '01';
          out_desc := 'Already active';
     END IF;
END sp_sample;

И вот как я называю хранимый процесс в codeigniter:

$id = '10';
$params = array($id);
$result = $this->db->query("CALL sp_sample(?, @out_code, @out_desc)", $params);

exit($result);

Тогда я получаю это сообщение об ошибке:

Query error: ORA-00936: missing expression - Invalid query: CALL sp_sample('10', @out_code, @out_code)

Мой вопрос сейчас заключается в том, как я могу вызвать хранимую процедуру оракула, используя codeigniter? Как правильно связать параметры?

Спасибо, Ирвин

...