Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/06/2008, 17h22   #1
Membre Expert
 
Avatar de CheryBen
 
Inscription : mai 2005
Messages : 1 600
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : mai 2005
Messages : 1 600
Points : 1 641
Points : 1 641
Par défaut Problème de fonction

Bonjour à tous, je débute sur postgresql et j'écris depuis hier mes premières fonctions. J'ai un problème avec celle-ci qui doit me renvoyer tous les enregistrements de la table "Deliveries" dont le champ "receiverLogin" est égal au paramètre et le champ "state" est égal à 'DOWNLOADING' :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CREATE OR REPLACE FUNCTION getexchangeinputs(_receiver text)
  RETURNS SETOF "Deliveries" AS
$BODY$
DECLARE
    delivery "Deliveries"%ROWTYPE;
BEGIN
    FOR delivery IN SELECT * FROM "Exchanges" WHERE ("receiverLogin"=_receiver AND "state"='DOWNLOADING')
    LOOP
        RETURN NEXT delivery;
    END LOOP;
    RETURN;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;
ALTER FUNCTION getexchangeinputs(text) OWNER TO dtc;
GRANT EXECUTE ON FUNCTION getexchangeinputs(text) TO public;
GRANT EXECUTE ON FUNCTION getexchangeinputs(text) TO dtc;
Quand je fais un test (SELECT getexchangeinputs('a')) j'ai l'erreur suivante :
Citation:
ERROR: invalid input syntax for type timestamp with time zone: "a"
CONTEXT: PL/pgSQL function "getexchangeinputs" line 4 at FOR over SELECT rows
Or aucun enregistrement n'a la valeur "a" dans un timestamp (voir image jointe), suis-je passé à côté de quelque chose? (oui sûrement sinon ça fonctionnerait...)
Images attachées
Type de fichier : jpg enregistrements.JPG (81,0 Ko, 2 affichages)
__________________
Les composants SWING | Les layouts SWING | doc javase 6 | CORBA | XSLT | BDD Derby embarquée

Pensez au bouton une fois le problème résolu
Comment utiliser la fameuse balise CODE ?
CheryBen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 11h14   #2
Membre Expert
 
Avatar de CheryBen
 
Inscription : mai 2005
Messages : 1 600
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : mai 2005
Messages : 1 600
Points : 1 641
Points : 1 641
Le problème est résolu, il y avait une discordance entre la table attaquée par la requête (Exchanges) et le type de retour de la fonction (Deliveries) ...
__________________
Les composants SWING | Les layouts SWING | doc javase 6 | CORBA | XSLT | BDD Derby embarquée

Pensez au bouton une fois le problème résolu
Comment utiliser la fameuse balise CODE ?
CheryBen est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h03.


 
 
 
 
Partenaires

Hébergement Web