IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

RAISE NOTICE ne fonctionne pas


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 254
    Par défaut RAISE NOTICE ne fonctionne pas
    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.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    J'essaie d'utiliser RAISE DEBUG ou RAISE NOTICE mais je vois pas le message générer alors qu'avec un RAISE EXCEPTION
    Est-ce que tu utilises la classe SQLWarning? Sinon , quoi d'autre?

  3. #3
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 254
    Par défaut
    j'utilise un block try-catch avec SQLException... c'est pour ça

    En fait le RAISE NOTICE fonctionne si j'utilise ma fonction dans la console PostgreSQL ou dans pgAdmin.

    Je ne connaissais pas SQLWarning... je vais m'informer sur le sujet...

    Un tutoriel sur le sujet ?
    Des exemples ?
    De la doc autre que la javadoc ?

    Merci.

Discussions similaires

  1. raise form_trigger_faillure ne semble pas fonctionner
    Par estertabita dans le forum Forms
    Réponses: 0
    Dernier message: 06/05/2011, 17h56
  2. Réponses: 6
    Dernier message: 27/01/2004, 11h14
  3. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo