Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
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 26/02/2007, 11h07   #1
Invité de passage
 
Inscription : juillet 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 13
Points : 1
Points : 1
Par défaut [DB2] Structure des curseurs

Bonjour,
Je travaille sur une application multi-plateforme (SGBD ORACLE, MS-SQL et DB2)
J'ai des scripts qui tournent sur ORACLE(PL-SQL) et MS-SQL(Transact-SQL).
Par contre j'ai un problème majeur sur DB2.

LES CURSEURS

Je ne sais absolument pas comment les déclarer et les utiliser.
J'ai la syntaxe ORACLE ET MS-SQL, mais rien en DB2.
J'ai cherché sur le NET, ...
Bref, je veux juste exécuter un curseur, ni plus ni moins (avec traitement de mise à jour et/ou d'insertions à l'intérieur).

D'avance merci pour la structure.

ci-dessous, la syntaxe pour le Transact et le PL. Si ça peut aider.
De ce que je sais, ça devrait ressembler au Transact, mais ...



===========================================
MS-SQL
===========================================

Code :
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
26
27
28
29
30
31
BEGIN 
 
DECLARE 
	@dtJour varchar(10),
	@code_cli varchar(20),
	@code varchar(20),
	@poste varchar(2),
 	@ordre int  
 
//TRAITEMENTS
 
Declare Curpro cursor FOR
	SELECT code1, code2, code3
	FROM TABLE
	WHERE code4 IS NULL AND code2 <> 0		
 
open Curpro
	fetch Curpro INTO @code_cli,@code ,@poste, @ordre 
	while @@fetch_status=0
	begin
 
	//TRAITEMENTS
 
	fetch Curpro INTO @code_cli,@code ,@poste, @ordre 
	end
 
close Curpro  
 
deallocate Curpro 
 
END
============================================
ORACLE
============================================


Code :
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
DECLARE
	 dtJour 	VARCHAR2(10);
	 stade		VARCHAR2(6) := 'xxxxx';
	 client		VARCHAR2(20):= 'xxxxxxxx';
	 cptr		INTEGER := 0;
	 cptr2		INTEGER := 0;
	 cptr2X		VARCHAR2(8);
	 calCle		INTEGER := 0;
	 numCou		INTEGER := 0;
	 nbdeclar	INTEGER := 0;
 
	 CURSOR CURS2 IS 
	 		SELECT
	 			  debut,
				  pro,
				  cli,
				  indice
	 		FROM TABLE
	 		WHERE
	 	  		  debut=dtJour
	 		AND	  pro = stade
			ORDER BY cli, indice;
 
	  courrier CURS2%ROWTYPE;
 
BEGIN
 
	 // TRAITEMENTS
 
	 OPEN CURS2;
	 LOOP
	 	 FETCH CURS2 INTO courrier;
		 EXIT WHEN CURS2%NOTFOUND;
 
		// TRAITEMENTS
 
	END LOOP;
	CLOSE CURS2;
END;
Voilà, merci pour votre aide
celesteorion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 16h18   #2
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Par défaut iSeries

Voici un lien qui pointe sur un Redbook concernant les procédures sur DB2/400.
Je pense que cette doc devrait être compatible avec ton SGBD DB2 qui, je présume, tourne sur Mainframe ? Il doit y avoir une doc particulière pour Mainframe sur le site d'IBM mais je ne sais pas où la trouver.

Stored Procedures, Triggers, and User-Defined Functions on DB2 Universal Database for iSeries
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 16h51   #3
Invité de passage
 
Inscription : juillet 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 13
Points : 1
Points : 1
Citation:
Envoyé par Mercure
Voici un lien qui pointe sur un Redbook concernant les procédures sur DB2/400.
Je pense que cette doc devrait être compatible avec ton SGBD DB2 qui, je présume, tourne sur Mainframe ? Il doit y avoir une doc particulière pour Mainframe sur le site d'IBM mais je ne sais pas où la trouver.

Stored Procedures, Triggers, and User-Defined Functions on DB2 Universal Database for iSeries

Merci en tous les cas, je regarde la doc pour voir si elle contient des exemples de curseurs.
celesteorion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 17h53   #4
Invité de passage
 
Inscription : juillet 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 13
Points : 1
Points : 1
Par défaut Ki C !!!

J'ai regardé le manuel il a l'air vraiment super.
Je vais faire avec ça et si je n'y arrive pas, je reviens

Alors merci encore et j'espère à dans longtemps
celesteorion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 18h00   #5
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Par défaut Redbook

Il y a aussi ce Redbook qui concerne également SQL sur DB2/400 mais peut être très intéressant à consulter.

DB2 Universal Database for iSeries SQL Reference
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h35.


 
 
 
 
Partenaires

Hébergement Web