Bonjour à tous,

j'aurais besoin d'un peu d'aide sur une requête Oracle ou je voudrais utiliser des variables afin de rendre plus visible et facile d'accès la recherche de données. Le résultat de la requête doit être affiché sur un écran et il y aura donc plusieurs éléments résultants de celle-ci
J'ai la requête ci-dessous qui fonctionne parfaitement. Or, je souhaiterais remplacer le sysdate, par une date que je pourrais déclarer en début de requête
J'ai tenté d'utiliser les variables mais la requête retourne plusieurs éléments. J'ai tenté d'utiliser la fonction cursor mais j'ai du mal à aller jusqu'au bout, et surtout afficher le résultat de ma requête sur Toad.

Voici la requête qui fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
select mr.code, mr.creationdate
from cswo_mr mr
left join cswo_mrstatus mrs on mr.id=mrs.origin_id 
where to_char(mr.creationdate,'yyyy-mm-dd HH24:mi:ss') between to_char(sysdate,'yyyy-mm-dd') ||' 05:00:00' and to_char(sysdate,'yyyy-mm-dd') ||' 12:59:59'
Voici le système que j'aimerais mettre en place mais qui ne marche pas :
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
Declare 
DateDeb DATE;
DateFin DATE;
HeureDeb varchar2(30);
HeureFin varchar2(30);
di varchar2(33);
 
Begin 
DateDeb:=to_date('2016-01-01','yyyy-mm-dd');
DateFin:=to_date('2017-01-31','yyyy-mm-dd');
HeureDeb:=' 05:00:00';
HeureFin:=' 12:59:59';
    select mr.code into di
    from cswo_mr mr
    left join cswo_mrstatus mrs on mr.id=mrs.origin_id 
    where mr.creationdate between DateDeb || HeureDeb  and  datefin || HeureFin;
End;
/
J'ai le message d'erreur ci-dessous .
ORA-01422: l'extraction exacte ramène plus que le nombre de lignes demandé
ORA-06512: à ligne 14
Un peu d'aide serait nécessaire svp. Merci