Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / вопрос по функции / 5 сообщений из 5, страница 1 из 1
15.02.2007, 09:03
    #34332077
alosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по функции
В оракле есть такая простенькая функция:

create or replace function getSessionsCountByFilter(
pUSER_TYPE LOGGED_SESSION.USER_TYPE%TYPE,
pLOGIN_DATE_FROM LOGGED_SESSION.LOGIN_DATE%TYPE,
pLOGIN_DATE_TO LOGGED_SESSION.LOGIN_DATE%TYPE,
pUSER_TABLE STRING_TABLE default NULL
) return TYPES_PKG.REFCURSOR is
c_SessionsCount TYPES_PKG.REFCURSOR;
begin
open c_SessionsCount for
select USER_ID, count(ID) SESSION_COUNT, max(LOGIN_DATE) LAST_LOGIN
from LOGGED_SESSION
where USER_TYPE = pUSER_TYPE
and LOGIN_DATE >= pLOGIN_DATE_FROM
and LOGIN_DATE <= pLOGIN_DATE_TO
and USER_ID in (select column_value from table(cast(pUSER_TABLE as STRING_TABLE))) group by USER_ID;
end if;
return c_SessionsCount;
end;

Меня интересует как переделать выделенную строчку на PostgreSQL и что вообще значит эта строчка?
...
Рейтинг: 0 / 0
15.02.2007, 09:13
    #34332095
Serik Akhmetov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по функции
:)
конечно можно догадаться, что делает приведенный код, но чтобы быть точным

я бы разбил вопрос,
сначала выяснить в соответствующей ветке форума
aloshaи что вообще значит эта строчка?

потом объяснить нам, что же вы хотите, и спросить
aloshaМеня интересует как переделать выделенную строчку на PostgreSQL
...
Рейтинг: 0 / 0
15.02.2007, 10:39
    #34332361
st_serg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по функции
используйте либо какую нить setof функцию, либо array
в случае с array будет чтото вроде этого (поидее)

pUSER_TABLE varchar[])
...
and user_id = any(pUSER_TABLE)
..
...
Рейтинг: 0 / 0
15.02.2007, 12:00
    #34332702
alosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по функции
st_sergиспользуйте либо какую нить setof функцию, либо array
в случае с array будет чтото вроде этого (поидее)

pUSER_TABLE varchar[])
...
and user_id = any(pUSER_TABLE)
..


and user_id = any(pUSER_TABLE)
это точно будет эквивалентно?
...
Рейтинг: 0 / 0
15.02.2007, 13:45
    #34333228
st_serg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по функции
9.17.3. ANY/SOME (array)
expression operator ANY (array expression)
expression operator SOME (array expression)
The right-hand side is a parenthesized expression, which must yield an array value. The left-hand expression is evaluated and compared to each element of the array using the given operator, which must yield a Boolean result. The result of ANY is “true” if any true result is obtained. The result is “false” if no true result is found (including the special case where the array has zero elements).
...

и дальше по тексту
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / вопрос по функции / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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