djbenji81100
Messages postés66Date d'inscriptionvendredi 9 septembre 2011StatutMembreDernière intervention 4 juin 2012
-
3 juin 2012 à 14:57
djbenji81100
Messages postés66Date d'inscriptionvendredi 9 septembre 2011StatutMembreDernière intervention 4 juin 2012
-
4 juin 2012 à 12:18
Bonjour,
j'ai actuellement un petit probleme sur une procedure stockée qui effectue un controle sur une deux dates ( pour voir si les dates rentrée en parametre pour un numéro d'emplacement de camping , ne ce trouvent pas entre la date de début et la date de fin de chaques enregistrements pour ce même numero d'emplacement ) j'espere que c'est compréhensible ^^'.
Donc voila la procédure.
CREATE OR REPLACE FUNCTION date_deja_prise(in date_de_debut date, in date_de_fin date, in num_emplacement integer) RETURNS integer AS $$
declare curseur1 cursor for select la_date_debut from reservation where code_empl = num_emplacement;
declare curseur2 cursor for select la_date_fin from reservation where code_empl = num_emplacement;
declare
succes integer;
date_deb date;
date_f date;
begin
succes = 1;
open curseur1;
open curseur2;
fetch curseur1 into date_deb;
fetch curseur2 into date_f;
While 'date_deb' is not null and date_f is not null and succes <> -1 loop
if 'date_de_debut' is between 'date_deb' and 'date_f' then
succes = -1;
else
if 'date_de_din' is between 'date_deb' and 'date_f' then
succes = -1;
end if;
end if;
fetch curseur1 into date_deb;
fetch curseur2 into date_f;
end loop;
close curseur1;
close curseur2;
return succes;
end;
$$ LANGUAGE plpgsql
donc c'est la premeire fois que j'effectue un controle come celui ci donc je ne sait pas si ce que j'ai fait est bon ou pas .
il y as deux conditions que regarde grace a un between si les dates rentrées en paramaetre ne ce trouve pas entre les date enregistrée dans la BD pour chaque enregistrement pour le numero d'emplacement rentrée lui aussi dans les paramètres.
Ca bloque a ce niveau la . lorque j'essaye de l'executer il me mets qu'il y as une erreur de syntaxe au niveau des between .
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 4 juin 2012 à 11:00
Salut,
je ne suis pas un expert PL, et je ne connais pas les spécificités de PostgreSQL, toutefois dans une requête "normale" SQL, il ne faut pas de is avant le BETWEEN. Une piste à suivre peut-être.