<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Zwrot typu danych real z funkcji]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=1359&amp;type=atom"/>
	<updated>2012-08-10T08:39:25Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=1359</id>
		<entry>
			<title type="html"><![CDATA[Odp: Zwrot typu danych real z funkcji]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3682#p3682"/>
			<content type="html"><![CDATA[Rzeczywiście działa super :) 
Już widzę gdzie popełniłem błąd

Dzięki 1100100 - krotne :D]]></content>
			<author>
				<name><![CDATA[szmontak]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1449</uri>
			</author>
			<updated>2012-08-10T08:39:25Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3682#p3682</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Zwrot typu danych real z funkcji]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3658#p3658"/>
			<content type="html"><![CDATA[u mnie działa, tyle ze wywołanie tej funkcji powinno mieć składnie SELECT  przelicz( 5 );

a funkcja powinna wyglądać dokładnie tak (to tylko szczegół) dodatkowo proponuje zmienić tym zwracany przez funkcje na numeric
CREATE OR REPLACE FUNCTION przelicz( ID_EKWIP int ) RETURNS real AS $$
DECLARE WAGA_TMP real; -- waga przedmiotów tymczasowa
BEGIN
SELECT sum( waga ) INTO WAGA_TMP FROM przedmiot WHERE id_ekwipunek = ID_EKWIP;
RETURN WAGA_TMP;
END;
$$LANGUAGE plpgsql VOLATILE]]></content>
			<author>
				<name><![CDATA[c_michal]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=627</uri>
			</author>
			<updated>2012-07-07T20:53:51Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3658#p3658</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Zwrot typu danych real z funkcji]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3657#p3657"/>
			<content type="html"><![CDATA[Witam, mam taki nietypowy problem z prostą funkcją:

CREATE OR REPLACE FUNCTION przelicz( ID_EKWIP int ) RETURNS real AS $$

DECLARE WAGA_TMP real; -- waga przedmiotów tymczasowa

BEGIN

SELECT sum( waga ) INTO WAGA_TMP FROM przedmiot WHERE id_ekwipunek = ID_EKWIP;

-- próbowałem też: 
-- WAGA_TMP = (SELECT sum( waga )  FROM przedmiot WHERE id_ekwipunek = ID_EKWIP);

RETURN WAGA_TMP;

END

Funkcja mi zwraca zero jak ją wywołam:

SELECT * FROM przelicz( 5 ); -- dla id = 5

a dokładniej:

           przelicz
---------------------------
                         0



Wynik zapytania:

SELECT sum( waga ) FROM przedmiot WHERE id_ekwipunek = 5;


Jest następujący:

  sum
-------
 15.73
(1 row)

Czy jak rozumiem nie mogę zwracać z funkcji typu real danych  (float też próbowałem)
czy robię gdzieś prosty błąd o którym nikt nie pisze w dokumentacji albo ja nie trafiłem na takowy opis a szukam już od tygodnia,... 

Jeśli ktoś ma jakiś pomysł to zapraszam do dyskusji :)]]></content>
			<author>
				<name><![CDATA[szmontak]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1449</uri>
			</author>
			<updated>2012-07-06T16:06:41Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3657#p3657</id>
		</entry>
</feed>
