Vous n'êtes pas identifié(e).

#1 04/02/2013 12:22:56

pubjgp
Membre

Utilisation d'une variable dans ALTER SEQUENCE

Bonjour,

Voici le problème en simplifié. ALTER SEQUENCE sequenceObject xxxx avec sequenceObject étant une variable. Mais  ALTER SEQUENCE semble refuser le variables. Une solution ?

Voici le message d'erreur
ERROR:  syntax error at or near "$1"
LINE 1: ALTER SEQUENCE  $1  MINVALUE 1 MAXVALUE 1000 START 1 INCREME...
                        ^
QUERY:  ALTER SEQUENCE  $1  MINVALUE 1 MAXVALUE 1000 START 1 INCREMENT 1
CONTEXT:  SQL statement in PL/PgSQL function "somefuncname" near line 9


Code simplifié :
CREATE OR REPLACE FUNCTION somefuncname() RETURNS varchar AS $$
declare sequenceObject varchar ;
BEGIN
    sequenceObject := 'matable_seq' ;
    ALTER SEQUENCE sequenceObject
        MINVALUE 1
        MAXVALUE 1000
        START 1
        INCREMENT 1; 
    RETURN sequenceObject;
END ;
$$ LANGUAGE 'plpgsql' VOLATILE;
SELECT somefuncname();

Cordialement,

Hors ligne

#2 04/02/2013 13:15:32

rjuju
Administrateur

Re : Utilisation d'une variable dans ALTER SEQUENCE

Bonjour,

vous devez passer par un EXECUTE, par exemple :

    EXECUTE format('ALTER SEQUENCE %I
        MINVALUE 1
        MAXVALUE 1000
        START 1
        INCREMENT 1;', sequenceObject);

Hors ligne

#3 04/02/2013 13:20:16

pubjgp
Membre

Re : Utilisation d'une variable dans ALTER SEQUENCE

Impec.
Merci.

Hors ligne

Pied de page des forums