Curseur et procédures stockées...

Résolu
vlaad Messages postés 79 Date d'inscription mardi 29 juin 2004 Statut Membre Dernière intervention 18 décembre 2006 - 24 oct. 2005 à 17:20
cs_fatou69 Messages postés 2 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 11 avril 2006 - 11 avril 2006 à 00:04
Bonjour à tous,

Je voulais savoir s'il est possible d'utiliser une procédure stockées dans un curseur a la place du select_statement..

Pour obtenir quelque chose comme ca...

declare curseur_name Cursor
for ProcStock_name

J'y arrive avec une requete SQL normale mais pas avec une PS est ce normal??

Merci d'avance.


Les programmeurs sont rois....Ceux qui ne croient pas en nous sont des fous...

7 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
25 oct. 2005 à 10:32
Salut



Le probleme est que les procedures stockées ne sorte pas
d'enregistrement pour faire ce que tu veut il faut faire des functions
stockées qui renvoie des tables.



Les procedures stockées peuvent remplir des tables temporaires

Que tu lis dans ton select apres.



Exmeple de fucntion qui retourne une table



FUNCTION dbo.A25__F__Compte(@DOS_UID UNIQUEIDENTIFIER)

RETURNS @table1 TABLE(

[Champ1_] UNIQUEIDENTIFIER,

PRIMARY KEY (Champ1_))

AS

BEGIN



INSERT @table1

SELECT champ1



....



voila
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
24 oct. 2005 à 19:55
Salut

Avec un exec maprocedure param1,param2

Est ce que ca fonctionne?

C'est une idée non testée
0
vlaad Messages postés 79 Date d'inscription mardi 29 juin 2004 Statut Membre Dernière intervention 18 décembre 2006 3
25 oct. 2005 à 09:59
Non ca ne marche pas...
Le Query Analyser me sort une erreur sur le mot clé "exec"...
J'ai essayé ces divers synthaxe:

declare cursor_NameCursor cursor for
select(exec MaProcStock @Param1=param1)
erreur sur le mot clé "exec"

declare cursor_NameCursor cursor for
select exec MaProcStock @Param1=param1
erreur sur le mot clé "exec"

declare cursor_NameCursor cursor for
select(MaProcStock @Param1=param1)
erreur sur le mot clé "MaProcStock"

declare cursor_NameCursor cursor for
select MaProcStock @Param1=param1
erreur sur le mot clé "MaProcStock"

Je le sens pas terrible


Les programmeurs sont rois....Ceux qui ne croient pas en nous sont des fous...
0
vlaad Messages postés 79 Date d'inscription mardi 29 juin 2004 Statut Membre Dernière intervention 18 décembre 2006 3
25 oct. 2005 à 10:43
Ca y est j'ai compris le principe... Merci bien d'avoir partager tes lumières..
Les programmeurs sont rois....Ceux qui ne croient pas en nous sont des fous...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_fatou69 Messages postés 2 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 11 avril 2006
10 avril 2006 à 03:13
salut les programmeurs
je suis en train de créée une fonction stocké qui retourne une valeur de type curseur ,le problemé ce que je sais pas se qu'il faut écrire en return

create or replace function test return types.cursortype
as
l_cursor types.cursorType;
begin
open l_cursor for select a.num_ad, a.nom_ad
from reserver r ,aderent a
where DATE_RES='12/02/2004'
and r.num_ad=a.num_ad;
return l_cursor;
end;
/
j'ai essayé le type 'types.cursorType ' met une erreur ce produit ERREU l'identificateur 'TYPES.CURSORTYPE' doit être déclaré

és vous avez une autre solution
merci davance et a+
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
10 avril 2006 à 21:28
Salut,

1 * expose ton problème dans un nouveau post pour être plus sur d'avoir une réponse.

2 * Je ne vois pas l'interet de ta sortie en type curseur

3* Regarde du coté des tables temporaires si tu as une solution,
explique plus le but mais je pense pas que cela soit possibl.
Bon courage
0
cs_fatou69 Messages postés 2 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 11 avril 2006
11 avril 2006 à 00:04
resalut
cette fonction me permet de récupérer des lignes d'une table ,donc le return n'es pas une valeur donc un ou plusieurs enregistrement d'ou la nécissité d'un curseur,mais dans le cas d'un nombre en met ' return number ' et je cherche dans le cas d'un curseur on mit quoi
jéspére que ta bien compris le probléme
allé je te dit a bientot et je te remercie pour l'intêret que vous porter a mon sujet
a+
0
Rejoignez-nous