<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - problem z Postgres'em]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=31</link>
		<description><![CDATA[Najświeższe odpowiedzi w problem z Postgres'em.]]></description>
		<lastBuildDate>Tue, 06 May 2008 08:44:50 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: problem z Postgres'em]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=133#p133</link>
			<description><![CDATA[Witam.

Wlasnie sprawdzilem phppgadminem i funkcja nie istnieje w bazie. Najwyrazniej sie nie zaimportowala z pliku txt.
Bede kombinowal dalej.

Pozdr

Edit:

Zostawiłem w pliku txt polecenia dotyczące utworzenia funkcji (oto te linie):
SET client_encoding = 'SQL_ASCII';
SET check_function_bodies = false;
SET client_min_messages = warning;
COMMENT ON SCHEMA public IS 'Standard public schema';
SET search_path = public, pg_catalog;
CREATE FUNCTION cmapa(text) RETURNS text
    AS $_$
    SELECT ((($1::integer -1 ) % 12)/2 + 1 + ((($1::integer - 1)/12)/2)*6)::text
;$_$
    LANGUAGE sql;
ALTER FUNCTION public.cmapa(text) OWNER TO gis;
CREATE FUNCTION mapa(text) RETURNS text
    AS $_$
SELECT substring($1 from '^(.-[[:digit:]]+-)[[:digit:]]+-')
 ||
 cmapa(substring($1 from '^.-[[:digit:]]+-([[:digit:]]+)-' ))
;
$_$
    LANGUAGE sql;
ALTER FUNCTION public.mapa(text) OWNER TO gis;
CREATE FUNCTION wersja(integer) RETURNS text
    AS $_$
select
     count(o3.id)   || '/' || wszystkich
from
    obiekty as o1
    inner join (
                select
                    nr_ewidencyjny,
                    count(1) as wszystkich
                from
                    obiekty
                where
                    recFinal = true
                group by nr_ewidencyjny
            ) as o2
        on
            o1.nr_ewidencyjny = o2.nr_ewidencyjny
        AND o1.id = $1
        AND o1.recFinal = true
    inner join obiekty as o3
        on
            o1.nr_ewidencyjny = o3.nr_ewidencyjny
        and o1.data_karty >= o3.data_karty
        and o1.id = $1
        and o1.recFinal = true
        and o3.recFinal = true
        group by o1.id, o1.nr_ewidencyjny, o1.data_karty, wszystkich
;
$_$
    LANGUAGE sql;
ALTER FUNCTION public.wersja(integer) OWNER TO gis;

Po wykonaniu polecenia psql gis < b.txt (gdzie b.txt zawiera powyzsze polecenia) otrzymuje nastepujace błędy:

ERROR:  syntax error at or near "$" at character 49
ERROR:  syntax error at or near "$" at character 1
ERROR:  syntax error at or near "OWNER" at character 35
ERROR:  syntax error at or near "$" at character 48
ERROR:  syntax error at or near "$" at character 1
ERROR:  syntax error at or near "OWNER" at character 34
ERROR:  syntax error at or near "$" at character 53
ERROR:  syntax error at or near "$" at character 1
ERROR:  syntax error at or near "OWNER" at character 39

i ni cholery nie wiem, o co mu chodzi. Please, help !

Pozdr
Greg]]></description>
			<author><![CDATA[dummy@example.com (greg)]]></author>
			<pubDate>Tue, 06 May 2008 08:44:50 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=133#p133</guid>
		</item>
		<item>
			<title><![CDATA[Odp: problem z Postgres'em]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=116#p116</link>
			<description><![CDATA[Problem w tym, że
[quote]Query failed: ERROR: function wersja(integer) does not exist HINT: No function matches the given name and argument types.[/quote]
Jesteś pewien, że funkcja wersja(..) istnieje w bazie, jeśli tak, to może pokaż jej definicję.]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Thu, 24 Apr 2008 07:41:51 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=116#p116</guid>
		</item>
		<item>
			<title><![CDATA[problem z Postgres'em]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=115#p115</link>
			<description><![CDATA[Witam.
Uruchomilem serwer PostgreSQL w wersji 7.4 na Debianie 4.0R3. Serwer dziala bez zarzutu. Przenosilem baze ze starego serwera (zrzut w postacie pliku .txt). Polecenie 'psql nazwa_bazy < baza.txt wykonalo import bazy. Serwis www korzystajacy z danych na pierwszy rzut oka dziala prawidlowo. Gorzej, kiedy zrobie zapytanie do bazy, bo otrzymuje ponizszy komunikat:

Warning: pg_exec() [function.pg-exec]: Query failed: ERROR: function wersja(integer) does not exist HINT: No function matches the given name and argument types. You may need to add explicit type casts. in /usr/share/php/SQLm/SQLm.php on line 169

a ponizej  debug:

DEBUG:
SQL Query: search:o
ERROR:  function wersja(integer) does not exist
HINT:  No function matches the given name and argument types. You may need to add explicit type casts.

SELECT  obiekty.id, 
	recFinal,
	nr_ewidencyjny,     -- nalezy dodac wiecej pol
	lokalizacja,
	gmina,
	powiat,
	wojewodztwa.nazwa AS "wojewodztwo",
	d_rodzaj.nazwa AS "d_rodzaj" ,
	data_powstania ,
	data_odnowienia ,
	data_karty ,		-- data utworzenia karty,  altered by cypreess
	aktywnosc.nazwa AS "aktywnosc",
	F,
	wersja (obiekty.id) AS "wersja"



FROM 	obiekty , wojewodztwa , d_rodzaj, aktywnosc

WHERE 	recFinal = 'true'
    AND wojewodztwa.id = obiekty.wojewodztwo
    AND d_rodzaj.id = obiekty.d_rodzaj
    AND aktywnosc.id = obiekty.aktywnosc
    AND ( nr_ewidencyjny LIKE '%1%' AND mapa(oznaczenie_1942) LIKE trim('N-34-33') )

    ORDER BY nr_ewidencyjny ASC, data_karty ASC
	-- nr_ewidencyjny ASC, data_karty ASC

LIMIT 15 OFFSET 0

Nie wiem w czym jest problem. Domyslam sie, ze chodzi o typ danych i o to, ze funkcja jest typu integer a wartosc ma miec tekstowa... Ale to tylko moje domysly.
Prosze o pomoc w rozwiazaniu problemu :)

Pozdrawiam
Greg]]></description>
			<author><![CDATA[dummy@example.com (greg)]]></author>
			<pubDate>Thu, 24 Apr 2008 06:56:10 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=115#p115</guid>
		</item>
	</channel>
</rss>
