Bonjour
J'ai écrit une procédure SQL


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
 
 
CREATE OR REPLACE FUNCTION _1nommultiniveaux3(integer)
  RETURNS SETOF record AS
$BODY$
 
SELECT "NOMENCLATURE"."NMC_ID", "NOMENCLATURE"."NMC_PERE", 2 AS niv
   FROM "NOMENCLATURE"
  WHERE ("NOMENCLATURE"."NMC_PERE" IN ( SELECT "NOMENCLATURE"."NMC_ID"
           FROM "NOMENCLATURE"
          WHERE ("NOMENCLATURE"."NMC_PERE" IN ( SELECT "NOMENCLATURE"."NMC_ID"
                   FROM "NOMENCLATURE" where
                  ("NOMENCLATURE"."NMC_PERE" IS NULL) and ("NOMENCLATURE"."NMC_ID"=$1)))))
UNION
SELECT "NOMENCLATURE"."NMC_ID", "NOMENCLATURE"."NMC_PERE", 1 AS niv
   FROM "NOMENCLATURE"
  WHERE ("NOMENCLATURE"."NMC_PERE" IN ( SELECT "NOMENCLATURE"."NMC_ID"
           FROM "NOMENCLATURE"
          WHERE ("NOMENCLATURE"."NMC_PERE" IS NULL) and ("NOMENCLATURE"."NMC_ID"=$1)))
UNION
SELECT "NOMENCLATURE"."NMC_ID", "NOMENCLATURE"."NMC_PERE", 0 AS niv
   FROM "NOMENCLATURE"
  WHERE ("NOMENCLATURE"."NMC_PERE" IS NULL) and ("NOMENCLATURE"."NMC_ID"=$1)
  ORDER BY 3;
 
 
$BODY$
  LANGUAGE 'sql' VOLATILE
  COST 100
  ROWS 1000;
J'obtiens un résultat avec des tuples de ce type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
"(1,,0)"
"(2,1,1)"
"(3,1,1)"
"(4,2,2)"

Comment faire pour avoir des colonnes séparées?
Merci