<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
	<id>http://postgres.cz/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=85.160.95.70</id>
	<title>PostgreSQL - Příspěvky [cs]</title>
	<link rel="self" type="application/atom+xml" href="http://postgres.cz/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=85.160.95.70"/>
	<link rel="alternate" type="text/html" href="http://postgres.cz/wiki/Speci%C3%A1ln%C3%AD:P%C5%99%C3%ADsp%C4%9Bvky/85.160.95.70"/>
	<updated>2026-09-15T16:27:23Z</updated>
	<subtitle>Příspěvky</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>http://postgres.cz/index.php?title=P%C5%99%C3%ADkazy_CALL_a_RETURN&amp;diff=230</id>
		<title>Příkazy CALL a RETURN</title>
		<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=P%C5%99%C3%ADkazy_CALL_a_RETURN&amp;diff=230"/>
		<updated>2007-04-30T10:38:21Z</updated>

		<summary type="html">&lt;p&gt;85.160.95.70: /* Příkaz RETURN */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Příkaz CALL ===&lt;br /&gt;
Tento příkaz slouží k aktivaci libovolné funkce. Na rozdíl od standardu PostgreSQL nepodporuje předávání hodnot odkazem. Tento příkaz je analogický příkazu &#039;&#039;PERFORM&#039;&#039; v jazyce PL/pgSQL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Syntaxe&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  CALL &#039;(&#039; seznam hodnot oddelenych carkou &#039;)&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Příkaz RETURN ===&lt;br /&gt;
Příkaz &#039;&#039;RETURN&#039;&#039; ukončuje provádění funkce. Výsledek výrazu v příkazu je zároveň hodnotou, která je vrácena funkcí. Výraz v příkazu &#039;&#039;RETURN&#039;&#039; nemusíme uvádět jestliže se jedná o funkci s OUT argumenty, nebo se jedná o void funkci. PL/pgPSM podporuje tzv. funkce generující tabulky (set returned funkce). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Syntaxe&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  RETURN [vyraz]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pokud je funkce vrací tabulku, musíme použít tzv. tabulkový výraz, kdy výraz v příkazu RETURN je SQL příkaz, jehož výsledkem je tabulka. Jelikož se výsledná tabulka přímo předává jako výstup z funkce, používá se příkaz SELECT &#039;&#039;bez klauzule INTO&#039;&#039;. Tabulkový výraz se smí objevit pouze jako argument příkazu RETURN. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE OR REPLACE FUNCTION tab(p int)&lt;br /&gt;
RETURNS SETOF Foo AS&lt;br /&gt;
$$&lt;br /&gt;
  BEGIN&lt;br /&gt;
    -- urcity vypocet&lt;br /&gt;
    IF p &amp;lt; 0 THEN SET p = 0; END IF;&lt;br /&gt;
    IF p &amp;gt; 20 THEN SET p = 20; END IF;&lt;br /&gt;
    -- pouziti tabulkoveho vyrazu&lt;br /&gt;
    RETURN TABLE(&lt;br /&gt;
      SELECT *&lt;br /&gt;
         FROM Foo&lt;br /&gt;
        WHERE Foo.a &amp;lt; tab.p;&lt;br /&gt;
      );  &lt;br /&gt;
  END;&lt;br /&gt;
$$ LANGUAGE plpgpsm;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>85.160.95.70</name></author>
	</entry>
</feed>