Salut,

Je suis débutant avec postgres, mais pas avec les sgbd. J'ai donc un probleme avec le langage pl/pgsql. Je veux créer une table qui contient une itération d'entier et dit si c un pair ou un impair plus deux multiplication(bref un cas d'école pour apprendre) dans une fonction.
voici ce que j'ai fait:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
CREATE OR REPLACE FUNCTION "public"."la_parite" (INTEGER) RETURNS VARCHAR
    AS'
    BEGIN
      IF mod($1, 2) != 0 THEN
        RETURN "impaire";
      ELSE
        RETURN "pair";
      END IF;
    END;
  'LANGUAGE 'plpgsql';
 
 
 
CREATE OR REPLACE FUNCTION "public"."tab_parite" (void)
RETURNS void
AS'
 
DECLARE
  i INTEGER;
  requete := "CREATE TABLE tmp1(
    i INTEGER CONSTRAINT PRIMARY KEY,
    PARITE VARCHAR(10),
    i**2 INTEGER,
    i**3 INTEGER)";
BEGIN
  EXECUTE requete;
 
  FOR i IN 1 10
    LOOP
      EXECUTE "INSERT INTO tmp1 values( i," || la_parite( i ) || ", i*2, i*3)";
    END LOOP;
 
   RETURN;
END;
 
'LANGUAGE 'plpgsql';
Lorsque je fait dans ma console un ' SELECT la_parite(2); ' et bien il me dit que la colonne pair n'existe pas.
Et si je veux exécuter tab_parite alors la ca me dit que la fonction n'existe pas.

alors que lors de l'execution du fichier contenant les fonctions j'ai eu le resultat:
CREATE FUNCTION
CREATE FUNCTION

Si qq peut m'aider pour débuter en pl/pgsql...

Merci