Итак, мне нужно использовать php для извлечения некоторой информации из моей базы данных с помощью процедуры. В моем коде есть проблема, и я не могу добраться до нее.Недопустимый номер в oci_fetch_all()
У меня есть следующая процедура:
CREATE OR REPLACE PROCEDURE example(
input IN varchar2,
p1 OUT SYS_REFCURSOR)
AS
BEGIN
OPEN p1 FOR
SELECT title
FROM book
WHERE gen LIKE '_' + input + '%'
ORDER BY gen;
END;
и вот мой PHP код:
$curs = oci_new_cursor($con);
$stmt = oci_parse($con, "begin example(:input, :data); end;");
$word = 'S';
oci_bind_by_name($stmt, "input", $word);
oci_bind_by_name($stmt, "data", $curs, -1, OCI_B_CURSOR);
oci_execute($stmt);
oci_execute($curs);
$nr_rows = oci_fetch_all($curs, $data, null, null, OCI_FETCHSTATEMENT_BY_COLUMN);
Я думаю, что код хорошо написан, но для некоторых нечетных причин я получаю эту ошибку
"Предупреждение: oci_fetch_all(): ORA-01722: неверный номер в C: .."
Я попытался в процессе, но ошибка все же происходит.
Выбрать, что я смотрю на это следующие:
SELECT title
FROM book
WHERE gen LIKE '_S%'
ORDER BY gen;
Любые идеи?
Я не знаю, если это сработает, я отправил комментарий и объяснил, как мой метод работает нормально. Мне нужно найти этот проект, чтобы проверить, я буду искать его и отвечать. – hepifish