Re: pgplsql: Substitution de variables

From: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
To: Samuel ROZE <samuel(dot)roze(at)aliceadsl(dot)fr>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: pgplsql: Substitution de variables
Date: 2008-09-02 19:19:49
Message-ID: 48BD91D5.9030707@lelarge.info
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

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

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Christophe Chauvet 2008-09-02 20:04:10 Re: Performance sur des fonctions plpgsql
Previous Message Samuel ROZE 2008-09-02 17:42:35 pgplsql: Substitution de variables