PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Re : Général » Utiliser attribut composé » 07/04/2014 15:54:11

Bonjour.
le type numTelephone n'est qu'une structure de découpage des données.
Il ne s'agit pas d'un table à part entière.
Elle peut être utilisée dans toute autre table sans aucune conséquence.

La seule chose compliquée dans votre exemple est de répondre au besoin : "il faut que l'utilisateur renseigne au minimum un des numéros"...

#2 Re : Général » [9.3] RAISE et niveaux de log » 10/02/2014 11:27:07

Effectivement cela fonctionne avec le "set client_min_messages to" que je n'avais pas trouvé..
Merci.

Il ne me reste qu'à trouver comment me débarrasser du "Context" pour passer de

NOTICE:  Lancement de l'Allumeur à 2014-02-10 10:24:32.297771+01
INFO:  Procédure de traitement du flux INFOLT2      (19) : transport.allum_format_infolt()
INFO:  48 transactions insérées dans tmp_transactions
CONTEXT:  SQL statement "SELECT transport.allum_format_infolt()"
PL/pgSQL function tampon.allumeur() line 46 at EXECUTE statement
INFO:  4661 données insérées dans tmp_verif_datas_infolt
CONTEXT:  SQL statement "SELECT transport.allum_format_infolt()"
PL/pgSQL function tampon.allumeur() line 46 at EXECUTE statement
INFO:  0 données rejetées pour Longueur n° LT invalide
CONTEXT:  SQL statement "SELECT transport.allum_verif_infolt()"
..

à

NOTICE:  Lancement de l'Allumeur à 2014-02-10 10:24:32.297771+01
INFO:  Procédure de traitement du flux INFOLT2      (19) : transport.allum_format_infolt()
INFO:  48 transactions insérées dans tmp_transactions
INFO:  4661 données insérées dans tmp_verif_datas_infolt
INFO:  0 données rejetées pour Longueur n° LT invalide
...

#3 Général » [9.3] RAISE et niveaux de log » 07/02/2014 12:30:54

GAEREL
Réponses : 3

Bonjour à tous.

J'ai un peu de mal avec le paramétrage de la fonction RAISE [niveau] [format] [expression,...]
Surtout coté client
Car je développe des fonctions assez longues qui contiennent des RAISE avec des niveau de log différents (de NOTICE à DEBUG)

> Pourquoi n'est il pas possible, dynamiquement, de changer le niveau (client_min_message) et/ou, d'ailleurs, le log_line_prefix en fonction de mes besoins ?
> Pourquoi ce paramétrage est il réservé au serveur ? donc au DBA (ce que je peux comprendre en production mais moins en phase de dev...)

En effet, à un instant T je peux avoir besoin du niveau DEBUG pour un deboguage profond et vouloir revenir au niveau NOTICE lors d'un test de plus grande envergure nécessitant moins de traces

Ceci, d'ailleurs, quel que soit le client : je développe avec pgadmin et teste mes scripts via psql

Merci d'avance de vos réponses éclairées.

Cordialement
Fred

#5 PL/pgSQL » [RESOLU] PERFORM et dynamisme... » 29/01/2014 18:29:40

GAEREL
Réponses : 2

Bonjour à tous.

Dans une fonction PL/pgSQL, je souhaite appeler une autre fonction qui varie selon des conditions fonctionnelles.

Quelque chose qui ressemblerait à cela

CREATE OR REPLACE FUNCTION travail.appellante() RETURNS void AS
$BODY$
DECLARE v_appelee character varying (100);
BEGIN
v_appelee := 'travail.appellee()';
EXECUTE 'PERFORM ' || v_appelee;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE STRICT COST 100;

Dans mon exemple v_appellee est forcé mais elle proviendra d'une table associant 'type de données' et 'fonction de traitement'

Je reçoit l'erreur suivante à l'exécution :

SELECT travail.appellante();

ERROR:  syntax error at or near "PERFORM"
LINE 1: PERFORM travail.appellee()
        ^
QUERY:  PERFORM travail.appellee()
CONTEXT:  PL/pgSQL function travail.appellante() line 7 at EXECUTE statement
********** Erreur **********

ERROR: syntax error at or near "PERFORM"
État SQL :42601
Contexte : PL/pgSQL function travail.appellante() line 7 at EXECUTE statement

Quelle est l'erreur de syntaxe qui m'échappe ?

Merci d'avance
Fred.

Pied de page des forums

Propulsé par FluxBB