Bonjour,

J'utilise PostgreSQL 8.4.1 avec les paramètres par défaut.

Je travaille sur une application Java et j'ai un soucis pour faciliter le débuging de fonctions et triggers.

J'essaie d'utiliser RAISE DEBUG ou RAISE NOTICE mais je vois pas le message générer alors qu'avec un RAISE EXCEPTION, j'ai bien un message dans mon programme via JDBC, cela fonctionne sans problème mais la fonction s'arrete bien sûr.

Voici un exemple :

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
DECLARE
	an BIGINT;				-- année courante
	mois SMALLINT;			-- mois courant
 
	dern_rec_str TEXT;		-- dernier id en string    
	dern_id BIGINT := 0;	-- dernier id
    nouv_id BIGINT := 0;	-- nouvel id
 
	an_dern_rec_str TEXT;	-- année correspondante au dernier id en string
	an_dern_rec SMALLINT;	-- année correspondante au dernier id
 
	nbid INTEGER;			-- nombre max d'id
BEGIN
	nbid := 10 ^ nbdigit;	-- nombre max d'id
    an := EXTRACT(year from now());
	mois := EXTRACT(month from now());
 
    -- s'il n'y a pas de vente, on ne fait rien, dern_id == 0
    IF (dern_rec IS NOT NULL) THEN     
        -- convertion du dernier id en string pour extraire facilement l'année et le numéro
        dern_rec_str := '' || dern_rec;
    	-- extraction de l'année et convertion en SMALLINT pour comparaison avec l'année courante
        an_dern_rec_str := SUBSTRING(dern_rec_str, 1,4);        
        an_dern_rec := CAST (an_dern_rec_str AS SMALLINT);
 
        -- si le dernier id n'est pas dans l'année courante, on ne fait rien, dern_id == 0
        IF (an_dern_rec >= an) THEN 
        	-- extraction du numéro du dernier id de l'année et convertion en BIGINT pour incrémentation
        	dern_id := CAST(SUBSTRING(dern_rec_str, 7, nbdigit) AS BIGINT);
        END IF;
    END IF;        
	-- calcul du nouvel id
    nouv_id := (an * nbid * 100) + (mois * nbid) + dern_id + 1;    
	RETURN nouv_id;
END;
Merci d'avance.