Что эквивалентно Oracle REF CURSOR в MySQL? - PullRequest
0 голосов
/ 23 августа 2011

Я пытаюсь создать процедуру в mysql, которая возвращает мне массив с результатом, который я обычно делал с курсором oracle ref, но в mysql не знаю, как продолжить, Я должен передать параметры тоже ...

Кто-нибудь знает, как я могу это сделать, или есть пример, чтобы показать мне? Большое спасибо ...

Ответы [ 2 ]

5 голосов
/ 03 апреля 2014

В MySQL нет такого прекурсора, как Oracle. Если вы планируете написать хранимую процедуру, которая возвращает несколько строк / набор результатов в MySQL, просто выполните

DROP procedure IF EXISTS `sample`;
DELIMITER $$
CREATE  PROCEDURE `sample`(p_rank IN INT)
BEGIN
select * from MyTable where id=p_rank;
END$$
DELIMITER ;

и звоните sample();. Он вернет набор результатов, который вы можете использовать.

1 голос
/ 23 августа 2011

Нет аналога REF CURSOR в MySQL. Хранимые процедуры и функции позволяют передавать и возвращать только скалярные типы данных, см. Ссылку здесь - CREATE PROCEDURE и CREATE FUNCTION Синтаксис .

MySQL не может работать с массивами. Обходной путь должен использовать стол (или ВРЕМЕННЫЙ СТОЛ).

Также - используйте преимущества визуальных редакторов объектов и отладчик хранимых процедур в dbForge Studio for MySQL .

...