Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Хранимая процедура / 4 сообщений из 4, страница 1 из 1
08.08.2007, 23:54
    #34715473
WizardI
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура
Помогите плиз.. а то очень спать хочется:
есть хранимая процедурка, которая должна возвращать результат простого запроса
select voting.fields_tb.name,voting.fields_tb.summ from voting.fields_tb where '1'=voting.fields_tb.id_voting; ,
где voting.fields_tb.name типа varchar(255), а voting.fields_tb.summ типа int.
Так вот нужна процедурка которая вернёт результат запроса! как она должна быть?!
Моя:
CREATE OR REPLACE FUNCTION voting.show_fn(int4) returns setof text AS
$BODY$declare

maxel int;
begin
select voting.fields_tb.name,voting.fields_tb.summ from voting.fields_tb where $1=voting.fields_tb.id_voting;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;


не работает!
Помогите, плиз... исправьте.. заранее благодарен!!!
...
Рейтинг: 0 / 0
09.08.2007, 01:04
    #34715496
Thamerlan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура
Ну на вскидку, что-то типа:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
CREATE OR REPLACE FUNCTION voting.show_fn(p1 IN integer, p2 OUT VARCHAR, p3 OUT NUMERIC)
returns setof RECORD AS
$BODY$
declare
rec_1   RECORD;
maxel int;
begin
   FOR rec_1 IN (select voting.fields_tb.name, voting.fields_tb.summ from voting.fields_tb where $ 1 =voting.fields_tb.id_voting)
   LOOP
      p2 := rec_1.name;
      p3 := rec_1.summ;
      RETURN NEXT;
   END LOOP;

   RETURN;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

SELECT * FROM voting.show_fn( 100 );
...
Рейтинг: 0 / 0
09.08.2007, 08:36
    #34715658
Paramedic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE OR REPLACE FUNCTION voting.show_fn(p1 IN integer, p2 OUT VARCHAR, p3 OUT NUMERIC)
returns refcursor AS
$BODY$
declare cur1 cursor for select voting.fields_tb.name,voting.fields_tb.summ from voting.fields_tb where $ 1 =voting.fields_tb.id_voting;
begin
  open cur1;
  return cur1;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

begin;
SELECT * FROM voting.show_fn( 100 );
fetch all from cur1;

...
Рейтинг: 0 / 0
09.08.2007, 08:36
    #34715660
Paramedic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура
Да, совсем забыл, т.к. тупо скопировал шапку функции блоком, второй и третий параметры не нужны.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Хранимая процедура / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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