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 02/11/2015 17:27:25

Mlan2
Membre

Session de deboggage de fonction

Bonjour,

.Débutant sur Postgres.

Je cherche à porter un script SQL écrit initialement pour Oracle vers Postgres (9.4). (Plate forme Windows 2008 R2)

J'utilise le deboggeur interne à PgAdminIII pour la mise au point.

1er problème :
========
Lors de sessions de déboggage, lorsque je fais du pas à pas (F11) pour suivre le déroulement du deboggage, il arrive fréquemment que j'ai le message : (step into) en attente de réponse du client.
Lorsque ce message apparaît, je suis bloqué, et le seul moyen de reprendre la main est de killer le programme PgAdminIII. Une fois cette action faite, un des process du serveur Postgres occupe presque les 100% de la cpu du serveur. L'arrêt du SGBD par le gestionnaire de service est inopérant. Le seul moyen de s'en sortir est de killer tous les prcess Postgres, puis de relancer le SGBD également depuis le gestionnaire de services. Une nouvelle session peut être à nouveau ouverte.
Ce phénomène n'est pas systématique (aléatoire).

Avez-vous une explication à ce phénomène ? Comment peut t'on y remédier ?

2eme problème :
==========
Le script SQL à valider fait appel à d'autres fonctions SQL. Une fonction en particulier me cause des soucis. Cette fonction exécutée individuellement fonctionne correctement (en lui passant les paramètres respectifs), mais quand elle est appelée depuis le script principal (fonction principale), j'ai le message ci-dessous :

ERREUR:  la fonction analyse_borne(character varying, character varying, date, date, character varying) n'existe pas
LINE 1: SELECT analyse_borne (V_ELT2, V_LIBELLE, DateDeb, Date...
               ^
HINT:  Aucune fonction ne correspond au nom donné et aux types d'arguments.
Vous devez ajouter des conversions explicites de type.
QUERY:  SELECT analyse_borne (V_ELT2, V_LIBELLE, DateDeb, DateTrt, JourTrt)
CONTEXT:  fonction PL/pgsql trait_prc(character varying,character varying,character varying,character varying,character varying,character varying,character varying), ligne 158 à affectation

Avez-vous une explication à ce phénomène ? Comment peut t'on y remédier ?

Hors ligne

#2 02/11/2015 18:19:52

edlm
Membre

Re : Session de deboggage de fonction

Bonjour,


pour le 1er problème je ne sais pas je n'utilise pas pgAdmin.


Pour le second probablement que les types des données passés à la fonction sont différents de ceux attendus.
Regardez à nouveau l'appel qui est fait et éventuellement "castez" vos données pour les faire correspondre à la signature de la fonction.
C'est d'ailleurs le conseil (HINT) qui vous est donné par le serveur.


Éric

Hors ligne

Pied de page des forums