Hola Lista:

 

Tengo la siguiente función:

 

CREATE OR REPLACE FUNCTION public.vacuum_respalda_msj (

integer

)

RETURNS void AS

$body$

declare diaAnterior varchar;

declare funcion text := '';

 

BEGIN

                select to_char(current_date - $1,'YYYYMMDD') into
diaAnterior;

      

                funcion:= 'VACUUM (ANALYZE) mensaje_ms_' || diaAnterior || '
;';

    EXECUTE FUNCION;

 

 

RETURN;

END;

$body$

LANGUAGE 'plpgsql'

VOLATILE

RETURNS NULL ON NULL INPUT

SECURITY INVOKER

COST 100;

 

 

La ejecuto de la siguiente forma:

 

select * from vacuum_respalda_msj(2);

 

 

y me da el siguiente error:

 

-- Executing query:

select * from vacuum_respalda_msj(2);

ERROR:  VACUUM cannot be executed from a function or multi-command string

CONTEXT:  SQL statement "VACUUM (ANALYZE) mensaje_ms_20130425 ;"

PL/pgSQL function "vacuum_respalda_msj" line 9 at EXECUTE statement

 

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

 

ERROR: VACUUM cannot be executed from a function or multi-command string

SQL state: 25001

Context: SQL statement "VACUUM (ANALYZE) mensaje_ms_20130425 ;"

PL/pgSQL function "vacuum_respalda_msj" line 9 at EXECUTE statement

 

 

 

 

…he tratado de corregirla , pero me sigue dando el mismo error.  Alguien me
podría dar una mano

 

Saludos

 

 

Responder a