<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Funkcja która jako argument dostaje "listę"]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=1906</link>
		<description><![CDATA[Najświeższe odpowiedzi w Funkcja która jako argument dostaje "listę".]]></description>
		<lastBuildDate>Tue, 12 Nov 2013 17:08:51 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Funkcja która jako argument dostaje "listę"]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=4806#p4806</link>
			<description><![CDATA[Pewnie, że można. Ale po co? Zdecydowanie lepiej jest używać unikatowych nazw. Ja osobiście zazwyczaj używam prefiksu "p_" do parametrów, i v_ do zmiennych (w plpgsql'u, bo w sqlu nie ma zmiennych).]]></description>
			<author><![CDATA[dummy@example.com (depesz)]]></author>
			<pubDate>Tue, 12 Nov 2013 17:08:51 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=4806#p4806</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja która jako argument dostaje "listę"]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=4805#p4805</link>
			<description><![CDATA[Pewnie wypisze odpowiedni komunikat.

A tak :
[code]select * from tabelka where tabelka.owoc = any( owoc );[/code] :-P]]></description>
			<author><![CDATA[dummy@example.com (tomek)]]></author>
			<pubDate>Tue, 12 Nov 2013 13:58:59 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=4805#p4805</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja która jako argument dostaje "listę"]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=4804#p4804</link>
			<description><![CDATA[Zastanów się jak postgres ma zrozumieć zapytanie:

select * from tabelka where owoc = any( owoc );

gdzie owoc to zarówno nazwa kolumny jak i zmiennej.]]></description>
			<author><![CDATA[dummy@example.com (depesz)]]></author>
			<pubDate>Tue, 12 Nov 2013 13:48:23 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=4804#p4804</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja która jako argument dostaje "listę"]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=4803#p4803</link>
			<description><![CDATA[Variadic-om się kiedyś przyjrzę.
Czemu: "Nigdy nie nazywaj zmiennych tak jak nazwy kolumn/tabel" ???]]></description>
			<author><![CDATA[dummy@example.com (tomek)]]></author>
			<pubDate>Tue, 12 Nov 2013 13:27:17 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=4803#p4803</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja która jako argument dostaje "listę"]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=4802#p4802</link>
			<description><![CDATA[Teraz mam dłuższą chwilę, więc mogę przejrzeć dokładniej.

Po pierwsze - Nigdy nie nazywaj zmiennych tak jak nazwy kolumn/tabel (owoc to zmienna czy kolumna?!)
Po drugie - zamiast podawać jako argument arraya (oczywiście można), można też użyć variadiców:

[code]
create function kto_dostarcza( VARIADIC p_owoce text[] )
    returns table (owoc text, dostawca text) as
$$
select owoc, dostawca from owocowy_rynek where owoc = any(p_owoce);
$$
language sql;
[/code]

Dzięki czemu wywołanie funkcji będzie prostsze:

[code]
$ select * from kto_dostarcza( 'pomarancze', 'banany');
    owoc    | dostawca 
------------+----------
 pomarancze | a
 banany     | b
 banany     | c
(3 rows)
[/code]]]></description>
			<author><![CDATA[dummy@example.com (depesz)]]></author>
			<pubDate>Tue, 12 Nov 2013 10:20:40 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=4802#p4802</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja która jako argument dostaje "listę"]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=4801#p4801</link>
			<description><![CDATA[OK, działa.
I dlatego właśnie lubię to forum :-)]]></description>
			<author><![CDATA[dummy@example.com (tomek)]]></author>
			<pubDate>Tue, 12 Nov 2013 09:12:58 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=4801#p4801</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja która jako argument dostaje "listę"]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=4799#p4799</link>
			<description><![CDATA[Zamiast "owoc in ( select unnest)" można użyć owoc = any($1)]]></description>
			<author><![CDATA[dummy@example.com (depesz)]]></author>
			<pubDate>Sat, 09 Nov 2013 08:13:03 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=4799#p4799</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja która jako argument dostaje "listę"]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=4796#p4796</link>
			<description><![CDATA[create or replace function kto_dostarcza(owoc varchar[])
returns table (owoc varchar(50), dostawca varchar(50))
as
$$ select owoc, dostawca
   from owocowy_rynek
   where owoc in (select unnest($1));
$$
language sql;

wywołanie:
select * from kto_dostarcza(array['jabłko','śliwka']::varchar[]);]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Fri, 08 Nov 2013 13:07:13 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=4796#p4796</guid>
		</item>
		<item>
			<title><![CDATA[Funkcja która jako argument dostaje "listę"]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=4795#p4795</link>
			<description><![CDATA[Chcę mieć funkcję która będzie jako argument dostawać "listę" owoców:
[code]select * from kto_dostarcza( ('jabłko', 'banan', 'mango'));[/code]
Próbuję ją napisać tak:
[code]create or replace function kto_dostarcza(owoc varchar(50)[])
returns table (owoc varchar(50), dostawca vachar(50))
as
$$ select owoc, dostawca
   from owocowy_rynek
   where owoc in $1;
$$
language sql;[/code]
ale dostaję komunikat:
[quote]BŁĄD:  błąd składni w lub blisko "$1"
LINE 6:    where owoc in $1 [/quote]

Potrafi ktoś pomóc ?]]></description>
			<author><![CDATA[dummy@example.com (tomek)]]></author>
			<pubDate>Fri, 08 Nov 2013 09:28:05 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=4795#p4795</guid>
		</item>
	</channel>
</rss>
