powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / про хранимые процедуры.... помогите пжалса....
12 сообщений из 12, страница 1 из 1
про хранимые процедуры.... помогите пжалса....
    #33033033
GreyVS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
никак не врублюсь как из хранимки вернуть набор данных :(
подскажите плиз. чёто не выходит... каменный цветок :(
...
Рейтинг: 0 / 0
про хранимые процедуры.... помогите пжалса....
    #33033599
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... RETURNS SET OF имя_таблицы\свой_тип ...
...
Рейтинг: 0 / 0
про хранимые процедуры.... помогите пжалса....
    #33033841
GreyVS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mwolf... RETURNS SET OF имя_таблицы\свой_тип ...
а как это сделать если я пользуюсь EMS PostgreSQL Manager ?
как-то тут не получается так состряпать хранимку... ткните плиз носом... запутался в конец :(
...
Рейтинг: 0 / 0
про хранимые процедуры.... помогите пжалса....
    #33033846
GreyVS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CREATE OR REPLACE FUNCTION "public"."tst_func1" () RETURNS SETOF opaque AS'
RETURN (select id,name,crdate,comment,fio from clients);
'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

вот так получается сделать хранимку... но это не прокатывает :(
...
Рейтинг: 0 / 0
про хранимые процедуры.... помогите пжалса....
    #33033875
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так, стоп, мужчина, объясните чего вы хотите.
вот так получается сделать хранимку... но это не прокатывает

Давайте по порядку, что вам нужно, что вы делаете, что не получается и что при этом вылазит. Слова не прокатывает мне лично ни о чём не говорят.
...
Рейтинг: 0 / 0
про хранимые процедуры.... помогите пжалса....
    #33033925
GreyVS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
надо создать средствами вышеупомянутго инструмента хранимую процедуру, которая бы возвращала выборку данных
до недавнего времени работал с MSSQL и делал такое легко, теперь встала задача переползти потихоньку на postgreSQL...
процедуру пока делаю с простым select внутри, просто ради поучиться...
...
Рейтинг: 0 / 0
про хранимые процедуры.... помогите пжалса....
    #33034036
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GreyVSCREATE OR REPLACE FUNCTION "public"."tst_func1" () RETURNS SETOF opaque - этто непрально - это для триггера AS'
select id,name,crdate,comment,fio from clients;
'LANGUAGE 'sql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;


а в plpgsql SETOF возвращается позаписно с помощью RETURN NEXT/

ЗЫ воспользуйтесь поиском по RETURNS SETOF. trigger и RETURN NEXT
...
Рейтинг: 0 / 0
про хранимые процедуры.... помогите пжалса....
    #33034037
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значится так.
Теория:
Как ты уже догадался Постгресс несколько отличается от МС-а. Приблизительно как С++ от Паскаля. В Постгресе надо проводить явную типизацию и описания в отличие от МС-а, который хавает многое по умолчанию.

Живой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE FUNCTION get_data(bigint, bigint, character varying, bigint) RETURNS SETOF result_view
    AS '
SELECT v.*
FROM
  result_view v;
WHERE
  много много условий
;
'
    LANGUAGE sql;
Акцентирую внимание на "LANGUAGE sql".

Постгрес Манагер (он русифицирован хотя бы?):
До окошка создания ф-ци я надеюсь ты добрался. Чтобы выбрать возвращаемый тип, тебя должна заинтересовать вторая строка параметров в этом окне. Вначале выбери чекбокс "Набор", иначе он будет думать, что будет возвращаться скаляр или одна запись. Потом в выпадающем списке выбери тип возвращаемой записи. Там вначале идут либо простые типы и массивы, а чуть ниже перечисляются типы записей - имена таблиц и предопределённых тобой типов.
Собсно всё.
В закладке DDL можно посмотреть на синтаксис ф-ции.
...
Рейтинг: 0 / 0
про хранимые процедуры.... помогите пжалса....
    #33034093
GreyVS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CREATE OR REPLACE FUNCTION "public"."tst_func4" () RETURNS SETOF "public"."clients" AS'
select * from clients;
'LANGUAGE 'sql' VOLATILE CALLED ON NULL INPUT SECURITY DEFINER;

создал процедуру, только на вот это:
select * from tst_func4();
говорит:
ERROR: query-specified return row and actual function return row do not match

где не так сделал?
...
Рейтинг: 0 / 0
про хранимые процедуры.... помогите пжалса....
    #33038289
GreyVS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот сделал хранимку:
CREATE OR REPLACE FUNCTION "public"."tst_funct2" () RETURNS date AS'
declare
datecur date;
dateold date;
begin
SELECT INTO dateold date_trunc(''month'', timestamp ''27.04.2005'');
dateold = date dateold - integer ''1'';
SELECT INTO dateold date_trunc(''month'', timestamp dateold);
return dateold;
end;
'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

вот так вызываю:
select tst_funct2();

вот такое получаю:
ERROR: syntax error at or near "$1" at character 15

подскажите в чём дело? ну сломал уже голову.... ведь всё элементарно! :(
...
Рейтинг: 0 / 0
про хранимые процедуры.... помогите пжалса....
    #33038401
GreyVS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
опять разобрался :) звиняйте за сумбур...
...
Рейтинг: 0 / 0
про хранимые процедуры.... помогите пжалса....
    #33038414
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если тебе станет легче, то у меня это тоже не работает
А так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE OR REPLACE FUNCTION "public"."tst_funct2" () RETURNS date AS'
declare
  datecur date;
  dateold date;
begin
  SELECT INTO dateold date_trunc(''month'', ''27.04.2005''::timestamp );
  dateold = dateold - 1;
  SELECT INTO dateold date_trunc(''month'', dateold::timestamp );
  return dateold;
end;
'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
?
Я правда так и не понял, что это ф-ция делает.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / про хранимые процедуры.... помогите пжалса....
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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