From: | Marc Cousin <cousinmarc(at)gmail(dot)com> |
---|---|
To: | pgsql-fr-generale(at)postgresql(dot)org |
Cc: | "GIUSEFFI Marie" <marie(dot)giuseffi(at)cea(dot)fr> |
Subject: | Re: Erreur sur une fonction avec un argument de type (integer, [numeric, numeric] |
Date: | 2010-08-25 14:03:31 |
Message-ID: | 201008251603.32076.cousinmarc@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
The Wednesday 25 August 2010 14:33:46, GIUSEFFI Marie wrote :
> Bonjour,
>
> J'aimerais créer une fonction avec comme argument un index et un tableau contenant deux éléments x et y.
>
> La fonction (voir ci-dessous) est bien acceptée par postgre (8.4.4 ss windowsXP) mais dès que j'essaye de l'appeler, un message d'erreur m'indique que la fonction ne correspond pas au nom donné et aux types d'arguments.
>
> Si quelqu'un a une idée sur comment passer les arguments à la fonction ?
>
> Cordialement
>
> Marie
>
>
>
> DROP TYPE IF EXISTS tab_abscisse CASCADE;
>
> CREATE TYPE tab_abscisse AS (
>
> x numeric,
>
> y numeric
>
> );
>
> CREATE OR REPLACE FUNCTION fct_a(
>
> id_tab integer,
>
> tab_abs tab_abscisse [] )
>
> RETURNS integer AS $$
>
>
>
> BEGIN
>
> RETURN 1;
>
> END;
>
> $$ LANGUAGE plpgsql;
>
>
>
>
>
> SELECT fct_a(1, ARRAY[[1.0,2.0], [3.0,4.0]] ) AS answer;
>
> Ou
>
> SELECT fct_a(1, ARRAY[ARRAY[1,2], ARRAY[3,4]] ) AS answer;
>
>
>
> ERREUR: la fonction fct_a(integer, numeric[]) n'existe pas
>
> LINE 2: SELECT fct_a(1, ARRAY[[1.0,2.0], [3.0,4.0]] ) AS answer;
La bonne syntaxe :
SELECT fct_a(1, ARRAY[ (1.0,2.0)::tab_abscisse, (3.0,4.0)::tab_abscisse] ) AS answer;
Il attend un tableau de tab_abscisse. Ce qui n'est pas exactement la même chose qu'un tableau à deux dimensions de numériques.
From | Date | Subject | |
---|---|---|---|
Next Message | damien clochard | 2010-09-02 08:55:32 | PG Day Europe 2010 : Appel à Conférenciers |
Previous Message | GIUSEFFI Marie | 2010-08-25 12:33:46 | Erreur sur une fonction avec un argument de type (integer, [numeric, numeric] |