Bonjour,
J'aurais voulu savoir si il était possible de faire l'intersection de deux curseurs ou bien par quelle méthode je pourais resortir les lignes identiques aux deux curseurs?
Emilie
Bonjour,
J'aurais voulu savoir si il était possible de faire l'intersection de deux curseurs ou bien par quelle méthode je pourais resortir les lignes identiques aux deux curseurs?
Emilie
Qu'est-ce qu'un curseur?
Il serait important que tu donne un exemple de Sql
un curseur est une zone de travail pour exécuter les ordres SQL, stocker leurs résultats et les utiliser. Il permet de traiter le résultat de requetes retournant plus d'un tuple.
voici mon code:
et dans mon package de spec :
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
19
20
21
22
23
24
25 create or replace package body bdtheque as procedure recherche_multi_critere3 (le_titrealbum in varchar2, la_couleur in varchar2, la_dateparution in date, le_numalbum in number, l_appreciation in number, le_nomauteur in varchar2, le_prenomauteur in varchar2, le_nomdessin in varchar2, le_prenomdessin in varchar2, le_nomgenre in varchar2, le_nomtype in varchar2, le_titreserie in varchar2, le_nomcollect in varchar2, le_nomediteur in varchar2,liste_album_titre out cur_album, liste_album_couleur out cur_album, liste_album out cur_album) is begin set transaction read only; if (le_titrealbum is null) then open liste_album_titre for select * from album; else open liste_album_titre for select * from album where titrealbum = le_titrealbum; end if; if (la_couleur is null) then open liste_album_couleur for select * from album; else open liste_album_couleur for select * from album where couleur = la_couleur; end if; commit; exception when others then rollback; raise_application_error(-20999,'inatendue'||'sqlcode :'||sqlcode||'message : '||substr(SQLERRM,1,100)); end; end; /
après avoir rempli les deux curseur j'aurais aimé pouvoir en sortir les lignes identiques.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 create or replace package bdtheque as type cur_album is ref cursor; procedure recherche_multi_critere3(le_titrealbum in varchar2, la_couleur in varchar2, la_dateparution in date, le_numalbum in number, l_appreciation in number, le_nomauteur in varchar2, le_prenomauteur in varchar2, le_nomdessin in varchar2, le_prenomdessin in varchar2, le_nomgenre in varchar2, le_nomtype in varchar2, le_titreserie in varchar2, le_nomcollect in varchar2, le_nomediteur in varchar2,liste_album_titre out cur_album, liste_album_couleur out cur_album, liste_album out cur_album); end; /
émilie
Sauf a vouloir ecrire la requete la moins performante possible, il faut mieux n'ouvrir qu'un seul curseur, retournant l'intersection entre deux ensembles de donnees, concretement: SELECT FROM A INTERSECT SELECT FROM B.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager