Hola Familia:

Quiero construir una función dinámicamente y me da error.

--------------------------------------------------------
ERROR:  syntax error at or near "if"
LINE 3: if not found then
        ^
QUERY:
SELECT * from pg_catalog.pg_class pgc,pg_catalog.pg_namespace pgn where 
pgc.relname = 'loca1' and pgc.relnamespace=pgn.oid and pgn.nspname='public';
if not found then
        create table loca1 (id int);
else
        insert into loca1 values (1);
        insert into loca1 values (2);
        insert into loca1 values (3);
end if;

CONTEXT:  PL/pgSQL function "loca" line 18 at EXECUTE statement

********** Error **********

ERROR: syntax error at or near "if"
Estado SQL:42601
Contexto:PL/pgSQL function "loca" line 18 at EXECUTE statement
--------------------------------------------------------

la función es esta

-------------------------------------------------------------
CREATE OR REPLACE FUNCTION loca(_var text)
  RETURNS void AS
$BODY$
declare
nuevas record;
inicio record;
nomb varchar;
script text;
begin
script:= '
SELECT * from pg_catalog.pg_class pgc,pg_catalog.pg_namespace pgn where 
pgc.relname = ' || '''loca1''' || ' and pgc.relnamespace=pgn.oid and 
pgn.nspname=' || '''' || $1::text || '''' || ';
if not found then
        create table loca1 (id int);
else
        insert into loca1 values (1);
        insert into loca1 values (2);
        insert into loca1 values (3);
end if;
';

  execute script;
  end;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION loca(text) OWNER TO postgres;
-----------------------------------------------------------

lo que me llama la atención es que agarro el código de la query y lo pongo en 
otra función y funciona bien.


Gracias de antemano.

Saludos

Ing. Leonel Fuentes Marrero


Fin a la injusticia, LIBERTAD AHORA A NUESTROS CINCO COMPATRIOTAS QUE SE 
ENCUENTRAN INJUSTAMENTE EN PRISIONES DE LOS EEUU!
http://www.antiterroristas.cu
http://justiciaparaloscinco.wordpress.com
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a