Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Создание Лукапа для табличек.... / 6 сообщений из 6, страница 1 из 1
23.10.2006, 19:04
    #34075139
donchenko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание Лукапа для табличек....
Здраствуйте Ув. коллеги.

Вот столкнулся с такой проблемой:

Есть некая БД, СУБД PosgreSQL, есть таблица - необходимо сделать просто лукап для данной таблицы, т.е.
Код: plaintext
1.
2.
3.
4.
5.
SELECT  id
                   ,dstr
                   ,num
        FROM someTable
        WHERE id > SOMEPARAMS; 


Как в ПОСТГРЕСЕ мне реализовать это дело по средствам хранимой процедуры/функции.
Код: plaintext
1.
2.
3.
4.
5.
CREATE OR REPLACE FUNCTION get_LookUp_test() RETURNS void AS $$
BEGIN
 SELECT num,dscr FROM test;
END;
$$ LANGUAGE plpgsql;

Провозился .. не получается ничего ...
Подскажите ПЛЗ!!!
...
Рейтинг: 0 / 0
23.10.2006, 19:16
    #34075166
Funny_Falcon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание Лукапа для табличек....
1. Зачем хранимая процедура? не лучше ли view? Или логика все-же посложнее?
2.
Код: 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.
create type LookUp_Return as (
    id int4,
    dstr varchar,
    num numeric
);
CREATE OR REPLACE FUNCTION get_LookUp_test_1(SOMEPARAM int4) RETURNS setof LookUp_Return AS $$
SELECT  id
                   ,dstr
                   ,num
        FROM someTable
        WHERE id > $ 1 ; 
$$ LANGUAGE sql;

CREATE OR REPLACE FUNCTION get_LookUp_test_2(SOMEPARAM int4) RETURNS setof LookUp_Return AS $$
DECLARE
       rec LookUp_Return
BEGIN
        FOR rec IN SELECT  id
                   ,dstr
                   ,num
        FROM someTable
        WHERE id > SOMEPARAM LOOP
             RETURN NEXT rec;
        END LOOP;
END;
$$ LANGUAGE plpgsql;

...
Рейтинг: 0 / 0
23.10.2006, 19:30
    #34075202
donchenko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание Лукапа для табличек....
Funny_Falcon
не лучше ли view? Или логика все-же посложнее?

Нет , вью не подходит ...
Там действительно немного с логикой намученно.
Большое спасибо за ответ ... Оч. помогло.
...
Рейтинг: 0 / 0
24.10.2006, 10:48
    #34076124
donchenko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание Лукапа для табличек....
И еще один момент.
Функция как бы вызывается и исполняется ....
Но!
При отработке, она возвращает одну монопольную строку, таким образом при обработке ее в клиенте, в ДБГриде отображается поле с именем MEMO.
Как с этим бороться?
...
Рейтинг: 0 / 0
24.10.2006, 11:00
    #34076173
Poligon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание Лукапа для табличек....
donchenkoИ еще один момент.
Функция как бы вызывается и исполняется ....
Но!
При отработке, она возвращает одну монопольную строку, таким образом при обработке ее в клиенте, в ДБГриде отображается поле с именем MEMO.
Как с этим бороться?

как вернуть рекордсет из функции?
...
Рейтинг: 0 / 0
24.10.2006, 16:36
    #34077758
Jelis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание Лукапа для табличек....
donchenkoИ еще один момент.
Функция как бы вызывается и исполняется ....
Но!
При отработке, она возвращает одну монопольную строку, таким образом при обработке ее в клиенте, в ДБГриде отображается поле с именем MEMO.
Как с этим бороться?

Код: plaintext
1.
   SELECT * FROM myFunction();
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Создание Лукапа для табличек.... / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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