Portál AbcLinuxu, 12. května 2025 16:32
CREATE OR REPLACE FUNCTION pokus(varchar) RETURNS int4 AS ' DECLARE v ALIAS FOR $1; BEGIN SELECT AsText(the_geom) FROM v; RETURNS 0; END; ' LANGUAGE plpgsql; SELECT pokus('b'); ERROR: syntax error at or near "$1" at character 32 QUERY: SELECT Astext(the_geom) FROM $1 CONTEXT: PL/pgSQL function "pokus" line 4 at SQL statement LINE 1: SELECT Astext(the_geom) FROM $1 ^Budu vdecny za jakykoliv podnet. Predem dekuji.
CREATE OR REPLACE FUNCTION pokus(varchar) RETURNS integer AS ' DECLARE v ALIAS FOR $1; x INTEGER; BEGIN EXECUTE ''SELECT id INTO x FROM '' || v || '' LIMIT 1''; RETURN x; END; ' LANGUAGE plpgsql;Pozor! SELECT INTO v PostgreSQL 7.4.8 ještě není implementováno. Lepší by asi bylo použít nějaký cyklus (v tomto případě)... RTFM a take it easy
CREATE OR REPLACE FUNCTION mujpokus(varchar) RETURNS varchar AS ' DECLARE v ALIAS FOR $1; x INTEGER; BEGIN EXECUTE ''SELECT AsText(the_geom) INTO x FROM '' || v || '' LIMIT 1''; RETURN x; END; ' LANGUAGE plpgsql;mi to hodi tuto hlasku:
kam038=# SELECT mujpokus('b'); ERROR: EXECUTE of SELECT ... INTO is not implemented yet CONTEXT: PL/pgSQL function "mujpokus" line 5 at execute statementTak to vypada ze to neimplementovali ani sem
FOR record_or_row IN EXECUTE text_expression LOOP statements END LOOP;Proto ten FOR...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.