Aller au contenu

Les procédures et les fonctions PL/PGSQL

Vous avez sûrement déjà entendu parler des procédures stockées, et nous y sommes enfin. Ces éléments sont essentiels pour organiser vos scripts en sous-programmes. Dans ce module, explorons les détails des procédures et des fonctions PL/PGSQL.

Les procédures et les fonctions sont des sous-programmes. Les fonctions retournent un résultat tandis que les procédures ne retournent rien.

Procédures

Une procédure est un sous-programme qui permet

Exemple de procédure PL/PGSQL
drop procedure if exists public.sp_example_procedure(date);

create or replace procedure public.sp_example_procedure(rundt date) 
as
$$
begin
    raise notice 'rundt : %', rundt;

    --- Bloc Instructions 1 ---

    --- Bloc Instructions 2 ---

    --- Bloc Instructions 3 ---

end;
$$ language plpgsql;
Dans un bloc transactionel, la fonction est appelée grâce au mot clé perform comme ceci

call public.sp_example_procedure('2022-12-01'::date);

Fonctions

Contrairement à une procédure, une fonction retourne un résultat qui peut être récupéré dans une variable.

Exemple de fonction PL/PGSQL
drop function if exists public.fn_example_function(date);

create or replace function public.fn_example_function(rundt date) 
returns character varying
as
$$
begin
    raise notice 'rundt : %', rundt;

    --- Bloc Instructions 1 ---

    --- Bloc Instructions 2 ---

    --- Bloc Instructions 3 ---

    return 'Y';
end;
$$ language plpgsql;

Dans un bloc transactionel, la fonction est appelée grâce au mot clé perform comme ceci

perform public.fn_example_function('2022-12-01'::date);

Extract Transform Load

Les procédures et les fonctions sont utlisées pour implémenter des logiques ETL

Exemple de fonction PL/PGSQL
drop function if exists public.fn_example_etl(date);

create or replace function public.fn_example_etl(rundt date) 
returns character varying
as
$$
begin
    raise notice 'rundt : %', rundt;

    --- BLOCK 1 : EXTRACT ---
    create temp table public.

    --- BLOCK 2 : TRANSFORM ---

    --- BLOCK 3 : LOAD ---


    return 'Y';
end;
$$ language plpgsql;

Les procédures et les fonctions sont utilisées pour mettre en œuvre des logiques ETL, faisant d'elles des éléments cruciaux dans le domaine de la gestion de bases de données. Explorez davantage ces fonctionnalités pour optimiser vos projets.