PL/SQL - Types de données
Bonjour, aspirants programmeurs ! Aujourd'hui, nous plongeons dans le monde fascinant des types de données PL/SQL. Ne vous inquiétez pas si vous êtes nouveau dans la programmation ; je vais vous guider à travers ce voyage pas à pas. À la fin de ce tutoriel, vous serez à l'aise avec divers types de données en PL/SQL et prêt à commencer votre aventure de codage !
Types de données scalaires PL/SQL et sous-types
Commençons par les bases. En PL/SQL, les types de données scalaires sont les briques de construction de nos programmes. Ils représentent des valeurs simples, comme des nombres ou du texte.
Qu'est-ce que les types de données scalaires ?
Les types de données scalaires sont la forme la plus simple de données en PL/SQL. Ils sont comme les atomes de notre univers de programmation - de petites unités indivisibles que nous utilisons pour construire des structures plus complexes.
Voici un exemple simple pour illustrer un type de données scalaire :
DECLARE
my_name VARCHAR2(50) := 'John Doe';
BEGIN
DBMS_OUTPUT.PUT_LINE('Mon nom est : ' || my_name);
END;
Dans cet exemple, my_name
est une variable de type VARCHAR2
, utilisée pour stocker du texte. Nous lui avons affecté la valeur 'John Doe'. Lorsque nous exécutons ce code, il affichera : "Mon nom est : John Doe".
Types de données numériques PL/SQL et sous-types
Passons maintenant aux nombres. PL/SQL propose plusieurs types de données numériques pour gérer différents types de nombres.
Types de données numériques courants
Type de données | Description | Exemple |
---|---|---|
NUMBER | Nombre à usage général | NUMBER(10,2) |
INTEGER | Nombres entiers | INTEGER |
BINARY_FLOAT | Nombre à virgule flottante 32 bits | BINARY_FLOAT |
BINARY_DOUBLE | Nombre à virgule flottante 64 bits | BINARY_DOUBLE |
Voyons ces types en action :
DECLARE
my_integer INTEGER := 42;
my_float BINARY_FLOAT := 3.14;
my_salary NUMBER(8,2) := 5000.50;
BEGIN
DBMS_OUTPUT.PUT_LINE('La réponse est : ' || my_integer);
DBMS_OUTPUT.PUT_LINE('Pi est environ : ' || my_float);
DBMS_OUTPUT.PUT_LINE('Mon salaire est : $' || my_salary);
END;
Ce script déclare trois variables de différents types numériques. Le type NUMBER(8,2)
pour my_salary
signifie qu'il peut stocker jusqu'à 8 chiffres au total, avec 2 chiffres après la virgule.
Types de données character PL/SQL et sous-types
Les données textuelles sont cruciales en programmation. PL/SQL propose plusieurs types de données character pour gérer le texte efficacement.
Types de données character courants
Type de données | Description | Exemple |
---|---|---|
VARCHAR2 | Chaîne de caractères de longueur variable | VARCHAR2(100) |
CHAR | Chaîne de caractères de longueur fixe | CHAR(10) |
NVARCHAR2 | Chaîne de caractères unicode de longueur variable | NVARCHAR2(100) |
NCHAR | Chaîne de caractères unicode de longueur fixe | NCHAR(10) |
Voici comment nous utilisons ces types en pratique :
DECLARE
my_varchar VARCHAR2(50) := 'Bonjour, le monde !';
my_char CHAR(10) := 'Fixe ';
my_nvarchar NVARCHAR2(50) := N'こんにちは'; -- "Bonjour" en japonais
BEGIN
DBMS_OUTPUT.PUT_LINE('VARCHAR2 : ' || my_varchar);
DBMS_OUTPUT.PUT_LINE('CHAR : ' || my_char || '(fin)');
DBMS_OUTPUT.PUT_LINE('NVARCHAR2 : ' || my_nvarchar);
END;
Notez comment le type CHAR
remplit la chaîne avec des espaces pour atteindre sa longueur fixe.
Types de données boolean PL/SQL
Les types de données boolean sont essentiels pour prendre des décisions dans nos programmes. Ils peuvent uniquement prendre trois valeurs possibles : TRUE, FALSE ou NULL.
DECLARE
is_student BOOLEAN := TRUE;
has_job BOOLEAN := FALSE;
is_married BOOLEAN;
BEGIN
IF is_student THEN
DBMS_OUTPUT.PUT_LINE('Cette personne est un étudiant.');
END IF;
IF NOT has_job THEN
DBMS_OUTPUT.PUT_LINE('Cette personne n''a pas de travail.');
END IF;
IF is_married IS NULL THEN
DBMS_OUTPUT.PUT_LINE('Nous ne savons pas si cette personne est mariée.');
END IF;
END;
Ce script demonstrates comment nous utilisons les valeurs boolean pour prendre des décisions dans notre code.
Types de données datetime et interval PL/SQL
Lorsque nous travaillons avec des dates et des heures, PL/SQL propose des types de données spécifiques pour gérer ces valeurs avec précision.
Types de données datetime courants
Type de données | Description | Exemple |
---|---|---|
DATE | Date et heure | DATE |
TIMESTAMP | Date et heure avec des secondes fractionnaires | TIMESTAMP |
INTERVAL YEAR TO MONTH | Période de temps en années et mois | INTERVAL YEAR TO MONTH |
INTERVAL DAY TO SECOND | Période de temps en jours, heures, minutes et secondes | INTERVAL DAY TO SECOND |
Voyons ces types en action :
DECLARE
current_date DATE := SYSDATE;
future_date TIMESTAMP := SYSTIMESTAMP + INTERVAL '1' YEAR;
age_interval INTERVAL YEAR TO MONTH;
BEGIN
age_interval := (SYSDATE - TO_DATE('1990-01-01', 'YYYY-MM-DD')) YEAR TO MONTH;
DBMS_OUTPUT.PUT_LINE('Date actuelle : ' || TO_CHAR(current_date, 'DD-MON-YYYY'));
DBMS_OUTPUT.PUT_LINE('Date dans 1 an : ' || TO_CHAR(future_date, 'DD-MON-YYYY HH24:MI:SS.FF'));
DBMS_OUTPUT.PUT_LINE('Âge : ' || age_interval);
END;
Ce script demonstrates comment travailler avec des dates, des timestamps et des intervals.
Types de données LOB PL/SQL
Pour gérer de grandes quantités de données, PL/SQL propose des types de données LOB (Large Object).
Types de données LOB courants
Type de données | Description | Exemple |
---|---|---|
CLOB | Objet de caractères large | CLOB |
BLOB | Objet binaire large | BLOB |
NCLOB | Objet de caractères national large | NCLOB |
Voici un exemple simple d'utilisation d'un CLOB :
DECLARE
my_clob CLOB;
BEGIN
my_clob := 'Ceci est une chaîne très longue qui pourrait potentiellement être plusieurs mégaoctets.';
DBMS_OUTPUT.PUT_LINE(DBMS_LOB.GETLENGTH(my_clob) || ' caractères de longueur');
END;
Ce script crée un CLOB et demonstrates comment obtenir sa longueur.
Sous-types définis par l'utilisateur en PL/SQL
PL/SQL vous permet de créer vos propres sous-types basés sur des types de données existants. Cela peut aider à rendre votre code plus lisible et plus facile à维护.
DECLARE
SUBTYPE positive_number IS NUMBER(8,2) CHECK (positive_number > 0);
my_salary positive_number;
BEGIN
my_salary := 5000.50;
DBMS_OUTPUT.PUT_LINE('Mon salaire : $' || my_salary);
-- Cela leverait une erreur :
-- my_salary := -1000;
END;
Dans cet exemple, nous avons créé un sous-type positive_number
qui garantit que la valeur est toujours positive.
Les valeurs NULL en PL/SQL
Enfin, parlons des valeurs NULL. En PL/SQL, NULL représente une valeur inconnue ou indisponible. Ce n'est pas la même chose que zéro ou une chaîne vide.
DECLARE
var1 NUMBER;
var2 VARCHAR2(10) := '';
BEGIN
IF var1 IS NULL THEN
DBMS_OUTPUT.PUT_LINE('var1 est NULL');
END IF;
IF var2 IS NOT NULL THEN
DBMS_OUTPUT.PUT_LINE('var2 n''est pas NULL, c''est une chaîne vide');
END IF;
END;
Ce script demonstrates la différence entre NULL et une chaîne vide.
Et voilà ! Nous avons couvert les principaux types de données en PL/SQL. Souvenez-vous, comprendre les types de données est crucial pour écrire du code efficace et sans erreurs. Continuez à vous entraîner, et bientôt vous serez un pro de PL/SQL !
Credits: Image by storyset