Search Postgresql Archives

Error in creating function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I am trying to create a function, which takes the nearest 3 hospitals
to a point making use of a PostGIS function), and then check each
hospital for the exact distance on roads (by making use of a pgRouting
function).

Below please find a copy of my function, and u can also find it
highlighted here : http://yancho.pastebin.com/f13cc045e

CREATE OR REPLACE FUNCTION near_hospital(text, integer, integer)
  RETURNS integer AS
$BODY$

DECLARE
	pojnt ALIAS FOR $1;
	box ALIAS FOR $2;
	dist ALIAS FOR $3;

        distances RECORD;

        nearest RECORD;


BEGIN


       nearest.dist := 1000000000;

       FOR distances IN

                              select astext(h.the_geom) as
hospital_location from hospitals h where
                        	 (
                        	 h.the_geom && expand (pointfromtext(pojnt),
100000) and
                        	 distance ( h.the_geom ,
pointfromtext(pojnt) ) < 150000
                        	 )
                            order by distance (h.the_geom ,
pointfromtext(pojnt)) ASC
                            limit 3;
        LOOP

               select INTO hospital gid, the_geom, length(the_geom) AS
dist from shootingstar_sp
		      ( 'streets',

                            (
                            	select s.gid from streets s, hospitals h
where
				source = (
                                       select
give_source(distances.hospital_location,100000,150000))
				limit 1
		            )

                            ,

                            (
                            	select gid from streets where
				target = (select give_target(pojnt,100000,150000))
				limit 1
		            )

		            ,
                           5000,
                           'length',
                           true,
                           true
                      );


              IF hospital.dist < nearest.dist  THEN
                  nearest.dist := hospital.dist;
                  nearest.gid := hospital.gid;

                  select INTO nearest name from hospital h
                     where h.gid = hospital.gid ;

              END IF;

       END LOOP;

       RETURN nearest.gid;

END;

' language 'plpgsql';


The error being given by pgAdminIII is : unterminated dollar-quoted
string at or near "$BODY$" [then some garbled text] for $1;

Any help will be extremely appreciated!

Thanks and regards

Matthew

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux