Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-fr-generale by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group