Bonjour,

Je cherche à retourner une liste en IN OUT à partir d'une fonction.

Je voudrais pouvoir ajouter des éléments dans la liste en utilisant la fonction extend mais avant cela vérifier si l'élément à ajouter existe déjà dans une autre table.

J'ai essayé de faire ceci :

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
 
	TYPE REC IS RECORD(
		CODE_REMISE VARCHAR2(10),
		CODE_POURCENTAGE NUMBER
    );
 
	TYPE TAB IS TABLE OF REC
		INDEX BY BINARY_INTEGER;
 
	VTAB TAB;
 
	CURSOR C1 IS
		SELECT CODE_REMISE, CODE_POURCENTAGE
		FROM TABLE_REMISE
		WHERE NUM = '1DOLL123';
 
	V_CODE_REMISE VARCHAR2(10);
 
BEGIN
 
  OPEN C1;
  FETCH C1 BULK COLLECT INTO VTAB;
 
  IF VTAB.COUNT > 0 THEN
	FOR I IN 1..VTAB.COUNT
	LOOP
 
	SELECT C_REMISE
	INTO V_CODE_REMISE
	FROM TABLE_REMISE_TMP
	WHERE C_REMISE = VTAB(I).CODE_REMISE;
 
	IF V_CODE_REMISE IS NOT NULL OR V_CODE_REMISE <> '' THEN
	VTAB.EXTEND(....);
    ...
	...
 
END;
mais je ne sais si ce que j'ai fait jusqu'à présent est correct et je ne vois pas comment utiliser la fonction extend dans mon code.

Merci,