читая о том, как сделать SP, который возвращает результаты запроса, кажется, что я должен делать такие вещи (с учебного сайта)
CREATE OR REPLACE FUNCTION show_cities() RETURNS refcursor AS $$
DECLARE
ref refcursor; -- Declare a cursor variable
BEGIN
OPEN ref FOR SELECT city, state FROM cities; -- Open a cursor
RETURN ref; -- Return the cursor to the caller
END;
$$ LANGUAGE plpgsql;
ОК, я понимаю, но я хочу передать SQL в качестве параметра, поэтому мне нужно сделать (я думаю)
EXECUTE mysql ......
Но я не вижу, как заставить EXECUTE
вернуть курсор
EDIT:
Хорошо, теперь я вижу, что я неправильно понял, что делает не динамический случай. Я ожидал, что смогу сделать select show_cities()
и заставить его делать то же самое, что и SELECT city, state FROM cities
, это не так. Конечно, теперь, когда я думаю об этом, это не удивительно. Я хочу вернуть фактический набор записей.