From: Julio Leyva <jcleyva@xxxxxxxxxxx>
To: <pgsql-admin@xxxxxxxxxxxxxx>
Subject: [ADMIN] alter sequence in a function
Date: Tue, 3 Jul 2007 22:48:30 +0000
Hi allI'm trying to create a function that alters a sequenceThis what I'm
doingcreate or replace function updatesafe() returns integer AS
$$DECLAREmaxseq integer;alterseq varchar(256);thumb integer;newvalue
integer;BEGINnewvalue := 10010; maxseq := (select max(safeoperationid)
from safeopencloseoperation); if (maxseq < 500) then return 3000;
else execute 'ALTER sequence safeopencloseoperation_id_seq restart with
' || 'newvalue ' ;
Remove the single quotes (' ') from newvalue in the execute, it is taking
newvalue as a string instead of treating it as a variable.
return 10000; END IF;END;$$ language plpgsqlIt compiles ok but when I call
the functionit gives me this error ALTER sequence
safeopencloseoperation_id_seq restart with newvalueCONTEXT: PL/pgSQL
function "updatesafe" line 17 at execute statementLINE 1: ...equence
safeopencloseoperation_id_seq restart with newvalueHowever when I change the
alter sequence for thisALTER sequence safeopencloseoperation_id_seq restart
with 10000 ;The function is ok,It means that we can't use such a utility
inside a function? I mean replacing a value for a variable?Thanks for any
suggestion
_________________________________________________________________
http://newlivehotmail.com