Wednesday, September 3, 2008

Re: [pgsql-fr-generale] pgplsql: Substitution de variables

Bonjour,

Merci beaucoup, ça marche sans problèmes avec la deuxième méthode qui
est :

SELECT variable::timestamptz

(et non "::timestamp with zone" :) )

Merci !

Le mardi 02 septembre 2008 à 21:19 +0200, Guillaume Lelarge a écrit :
> Samuel ROZE a écrit :
> > Bonjour à tous (encore une fois :) ),
> >
> > Je suis actuellement confronté à un problème que je trouve assez bizare,
> > lors de la substitution de variables dans une requête SELECT :
> >
> > ----------
> > [...]
> > SELECT (timestamp with time zone "v_new_time" - timestamp with time zone
> > "v_temps") INTO v_interval;
> > [...]
> > ----------
> >
> > Cette simple commande SELECT ... INTO donne cette erreur :
> >
> > ----------
> > 7-statistiques-triggers.sql:116: ERREUR: erreur de syntaxe sur ou près
> > de « $1 » at character 37
> > QUERY: SELECT (timestamp with time zone $1 - timestamp with time zone
> > $2 )
> > CONTEXT: SQL statement in PL/PgSQL function "parse_donnees_brutes" near
> > line 66
> > ----------
> >
> > Je ne comprend pas... J'ai essayer avec des guillements simple, ça
> > marche mais après lors de l'exécution il y a un problème logique qui me
> > dit par exemple que "v_new_time n'est pas du type timestamptz"...
> >
>
> Logique car un guillemet simple indique une chaîne de caractères, et la
> chaîne de caractères 'v_new_time' ne ressemble en rien à une valeur de
> type timestamp.
>
> > Pouvez-vous m'aider ou me donner des pistes ?
> >
>
> Ton problème vient de la façon de faire ton cast. À mon avis, c'est pas
> standard du tout. Bref, tu as deux possibilités :
>
> * soit la syntaxe "::"
>
> select d1::"timestamp with time zone" - d2::timestamp with time zone
> into v;
>
> * soit utiliser cast
>
> Quelque soit ton choix, pense à placer le INTO après le SELECT,
> autrement dit :
>
> select into v d1::timestamp with time zone
> - d2::timestamp with time zone ;
>
>
> --
> Guillaume.
> http://www.postgresqlfr.org
> http://dalibo.com
>


--
Sent via pgsql-fr-generale mailing list (pgsql-fr-generale@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-fr-generale

No comments: