Bonjour,
Je suis en train de développer un module PL SQL qui fait souvent le meme
traitement.
/* ----------------------------------------------
Fonction future générique de controle des tables de nomenclature N_NOM_XXXXXX
----------------------------------------------*/
FUNCTION lookup_test()
RETURN BOOLEAN
IS
/*** curseur local sur les codes statuts table N_STATUT **/
local_statut n_statut.code%TYPE;
CURSOR cursor_statut
IS
SELECT DISTINCT code
FROM n_statut;
TYPE tref_statut IS TABLE OF n_statut.code%TYPE;
var_statut tref_statut;
/*************************************************************/
BEGIN
IF local_apprenti.statut IS NULL
THEN
INSERT INTO apprenti_upload_error
(apprenti_pk,
id,
statut
)
VALUES (local_apprenti.apprenti_pk,
local_apprenti.id,
(SELECT description
FROM apprenti_type_error
WHERE type_error_pk = 3)
);
RETURN FALSE;
ELSE
OPEN cursor_statut;
FETCH cursor_statut
BULK COLLECT INTO var_statut;
CLOSE cursor_statut;
FOR i IN var_statut.FIRST .. var_statut.LAST
LOOP
IF local_apprenti.statut = var_statut(i)
THEN
RETURN TRUE;
END IF;
END LOOP;
INSERT INTO apprenti_upload_error
(apprenti_pk,
id,
statut
)
VALUES (local_apprenti.apprenti_pk,
local_apprenti.id,
(SELECT description
FROM apprenti_type_error
WHERE type_error_pk = 13)
);
RETURN FALSE;
END IF;
END lookup_statut;
Ou il faudrait que le nom de table , le type d'erreur, le nom de la table seraient des valeurs que je passerais en paramètre .
Cela se fait en PL SQL ??
je vais tester mais si vous avez un avis je prends ...
olivier
Partager