Vous êtes sur la page 1sur 2

Procédure stockée en DB2 qui calcule des métriques financières telles que le

chiffre d'affaires et le bénéfice net en utilisant des curseurs, la gestion


des exceptions et le passage de paramètres complexes
-- Création de la procédure stockée
CREATE OR REPLACE PROCEDURE CalculateFinancialMetrics (
IN startDate DATE,
IN endDate DATE,
OUT revenue DECIMAL(10,2),
OUT netProfit DECIMAL(10,2))
LANGUAGE SQL
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE transactionAmount DECIMAL(10,2);
DECLARE costAmount DECIMAL(10,2);
DECLARE cur CURSOR FOR
SELECT amount, cost
FROM Transactions
WHERE transaction_date BETWEEN startDate AND endDate;

-- Gestion des exceptions


DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

-- Initialisation des métriques


SET revenue = 0;
SET netProfit = 0;

-- Ouverture du curseur
OPEN cur;

-- Traitement des lignes une par une


read_loop: LOOP
FETCH cur INTO transactionAmount, costAmount;
IF done THEN
LEAVE read_loop;
END IF;

-- Calcul du chiffre d'affaires


SET revenue = revenue + transactionAmount;

-- Calcul du bénéfice net


SET netProfit = netProfit + (transactionAmount - costAmount);
END LOOP;

-- Fermeture du curseur
CLOSE cur;
END
***********
-----------
Dans cet exemple :

.CalculateFinancialMetrics est le nom de la procédure stockée.


.startDate et endDate sont des paramètres d'entrée de la procédure stockée qui
définissent la période pour laquelle les données financières doivent être
analysées.

.revenue et netProfit sont des paramètres de sortie qui contiendront


respectivement le chiffre d'affaires et le bénéfice net calculés.

.Nous utilisons un curseur pour parcourir les résultats ligne par


ligne de la requête SELECT, récupérant à chaque fois le montant de
la transaction et le coût associé.
.Nous déclarons un gestionnaire d'exceptions pour gérer la situation
où aucune ligne n'est trouvée dans la requête SELECT.
.À chaque itération du curseur, nous mettons à jour les métriques de
chiffre d'affaires et de bénéfice net en fonction des montants de transactions et
de coûts.
.La boucle de lecture continue jusqu'à ce que toutes les lignes soient traitées.
.Enfin, nous retournons les valeurs calculées de chiffre d'affaires et de bénéfice
net
via les paramètres de sortie revenue et netProfit.

Vous pouvez appeler cette procédure stockée en spécifiant les dates de début et de
fin,
et récupérer ensuite le chiffre d'affaires et le bénéfice net calculés à travers
les paramètres de sortie revenue et netProfit.

Vous aimerez peut-être aussi