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 : 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
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 : 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
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