Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Получение refcursor через dblink / 2 сообщений из 2, страница 1 из 1
18.07.2008, 16:15
    #35439885
geniusoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение refcursor через dblink
Добрый день!
Суть проблемы:
не получается написать обертку для удаленной функции. первый листинг - это удаленная функция, второй - обертка. Не получается через обертку вернуть нужный мне refcursor. Заранее спасибо


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE OR REPLACE FUNCTION user_load_by_email(p_email text)
  RETURNS refcursor AS
$BODY$
DECLARE
  l_res REFCURSOR;
BEGIN
    l_res := 'cur';
    OPEN l_res
    FOR
		SELECT * 
        	--id, email, password, first_name, last_name, status
	   	FROM users
	   	WHERE email = p_email;
    RETURN l_res;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST  100 ;
ALTER FUNCTION user_load_by_email(text) OWNER TO postgres;
GRANT EXECUTE ON FUNCTION user_load_by_email(text) TO public;
GRANT EXECUTE ON FUNCTION user_load_by_email(text) TO postgres;

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
CREATE OR REPLACE FUNCTION user_load_by_email(p_email text)
  RETURNS refcursor AS
$BODY$
DECLARE
  l_res REFCURSOR;
	conn text;
BEGIN
	
    l_res := 'cur';
    conn := 'SELECT user_load_by_email('''||p_email||''')';  
    OPEN l_res
    FOR
	SELECT * FROM dblink((SELECT str FROM "ConnStr"),conn) as t1(id bigint,
	email character varying( 320 ),
	"password" character varying( 32 ),
	first_name character varying( 50 ),
	last_name character varying( 50 ),
	status smallint, -- 0 - non-registered - virtual...
	patronymic character varying( 50 ),
	birthday date);
    RETURN l_res;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST  100 ;
ALTER FUNCTION user_load_by_email(text) OWNER TO postgres;
GRANT EXECUTE ON FUNCTION user_load_by_email(text) TO public;
GRANT EXECUTE ON FUNCTION user_load_by_email(text) TO postgres;
...
Рейтинг: 0 / 0
18.07.2008, 17:57
    #35440198
iz
iz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение refcursor через dblink
Опишите ошибку подробнее. Также, в общем-то, не совсем понятна сама мотивация использования refcursor-ов для запроса с небольшим резалтсетом.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Получение refcursor через dblink / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]