[PostgreSQL] Przekazywanie danych do funkcji
MariuszB - 29-07-2006 01:06
[PostgreSQL] Przekazywanie danych do funkcji
Witam,
Czy da się zdefiniowac tak funkcjie w postgres aby pryjęła jako argument nie jedną liczbe a całą kolumne? Chodzi mi o takie wywołanie
funk((select id from miasta where miasto like "Kat%"))
Generalnie chodzi mi o to aby kryteria po których będę filtrował nie zaszywać w parametrach funkcji
Pozdrawiam, Mariusz
hubert depesz lubaczewski - 29-07-2006 01:06
On 2006-07-27, MariuszB <mbyrski_s_p_a_m_@_s_p_a_m_poczta.onet.pl> wrote: > Czy da się zdefiniowac tak funkcjie w postgres aby pryjęła jako argument > nie jedną liczbe a całą kolumne? > Chodzi mi o takie wywołanie > funk((select id from miasta where miasto like "Kat%")) > Generalnie chodzi mi o to aby kryteria po których będę filtrował nie > zaszywać w parametrach funkcji
a możesz powiedzieć po co ci to? czemu uważasz, że czegoś takiego potrzebujesz? bo może funk('Kat%') będzie lepszym pomysłem?
depesz
-- http://www.depesz.com/index.php/2006/06/22/choroby/
Michał Zaborowski - 29-07-2006 01:06
MariuszB napisał(a): > Witam, > > Czy da się zdefiniowac tak funkcjie w postgres aby pryjęła jako argument > nie jedną liczbe a całą kolumne? > Chodzi mi o takie wywołanie > > funk((select id from miasta where miasto like "Kat%")) > select funk(array(select...))
> Generalnie chodzi mi o to aby kryteria po których będę filtrował nie > zaszywać w parametrach funkcji > Ja bym zaszył. Zrobiłbym array typu zawierającego parę rodzaj parametru i jego wartość. Operowanie na takim czymś powinno być wystarczająco elastyczne. Zwykle wyszukiwanie jest dość problematyczne ze względów wydajnościowych. Jeżeli kod, który je realizuje jest rozproszony trudno nad tym zapanować...
-- Pozdrawiam, Michał Zaborowski (TeXXaS)
MariuszB - 29-07-2006 01:06
hubert depesz lubaczewski napisał(a): > > a możesz powiedzieć po co ci to? > czemu uważasz, że czegoś takiego potrzebujesz? > bo może funk('Kat%') będzie lepszym pomysłem? > Bo nie wiem po czym będzie następowała filtracja. Chce napisać pewien zbiór funkcji które będą używać programiści piszący raporty .
Powracając do mojego przykładu:
Moge napisać tak: funk((select id from miasta where miasto like 'Kat%'))
lub tak: funk((select miasto.id from miasto,wojewodztwo where miasto.wojewodztwo_id=wojewodztwo.id and wojewodztwo.nazwa='Małopolskie'))
Kryteria filtrowania są zupełnie inne, funkcja jest ta sama. Problem polega na tym że ja nie wiem po czym będzie konieczne filtrownie.
Pozdrawiam, Mariusz
MariuszB - 29-07-2006 01:06
Michał Zaborowski napisał(a):
> select > funk(array(select...)) > >> Generalnie chodzi mi o to aby kryteria po których będę filtrował nie >> zaszywać w parametrach funkcji >> > Ja bym zaszył. Zrobiłbym array typu zawierającego parę > rodzaj parametru i jego wartość. Operowanie na takim czymś > powinno być wystarczająco elastyczne. Zwykle wyszukiwanie > jest dość problematyczne ze względów wydajnościowych. > Jeżeli kod, który je realizuje jest rozproszony trudno nad > tym zapanować...
Faktycznie array powino mi rozwiązać problem. Pomysł z tablicą typ parametru, wartość fajny ale w tej chwili nie potrzebyje aż takiej elastyczności. Raczej chciałem napisać funkcje która coś policzy na fakturach, ale nie wiem jakie kryteria będą zastosowane do wyboru tych faktur. W tej sytłacji jako parametr dam tablice z id faktury. A programista w select zdecyduje o parametrach filtrowania.
Dzięki.
Pozdrawiam, Mariusz
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[PostgreSQL] - jak =?ISO-8859-2?Q?zabezpieczy=E6_interesy_tw?==?ISO-8859-2?Q?=F3rcy_systemu_=3F=3F=3F?=
postgresql - int/int
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
postgresql Select count(*) czy raczej Select count(ID)
[postgresql] INSERT OR UPDATE - jak =?ISO-8859-2?Q?b=EAdzie_na?==?ISO-8859-2?Q?jlepiej=3F?=
[postgresql] kilka =?ISO-8859-2?Q?rekord=F3w_subquery_jako_?==?ISO-8859-2?Q?string?=
Postgres - replikcja master-master
Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL]
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
=?ISO-8859-2?Q?[psql]_Polskie_t=B3umaczenie_?= =?ISO-8859-2?Q?licencji_BSD_dla_PostgreSQL=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.plptsite.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|