2025-11-16 09:10:10 +01:00
|
|
|
|
# Fonctions
|
|
|
|
|
|
|
2025-11-19 08:38:11 +01:00
|
|
|
|
Une fonction PostgreSQL est un objet de la base qui exécute un bloc de code (SQL ou PL/pgSQL) et **retourne une valeur**.
|
|
|
|
|
|
Elle permet d’automatiser des opérations réutilisables, éventuellement avec des paramètres.
|
|
|
|
|
|
|
2025-11-16 09:10:10 +01:00
|
|
|
|
```sql
|
|
|
|
|
|
insert into exchange_rate values
|
|
|
|
|
|
('EUR', '1999-01-04', 1),
|
|
|
|
|
|
('USD', '1999-01-04', 1.1789),
|
|
|
|
|
|
('YEN', '1999-01-04', 133.73);
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
```sql
|
|
|
|
|
|
create or replace function latest_exchange_rate (
|
2025-11-19 08:38:11 +01:00
|
|
|
|
p_code text, -- Les paramètres d'entrée
|
2025-11-16 09:10:10 +01:00
|
|
|
|
p_date date
|
|
|
|
|
|
)
|
2025-11-19 08:38:11 +01:00
|
|
|
|
returns decimal -- Le type de retour
|
|
|
|
|
|
language sql -- Pas besoin du langage procédural PL/pgSQL. C'est une simple requête SQL
|
2025-11-16 09:10:10 +01:00
|
|
|
|
as $$
|
|
|
|
|
|
select rate
|
|
|
|
|
|
from exchange_rate
|
|
|
|
|
|
where currency_code = p_code
|
|
|
|
|
|
and date < p_date
|
|
|
|
|
|
order by date desc
|
|
|
|
|
|
limit 1;
|
|
|
|
|
|
$$;
|
|
|
|
|
|
```
|