Guide des chaînes de caractères en PL/SQL pour les débutants
Bonjour, futurs magiciens PL/SQL ! Aujourd'hui, nous allons entreprendre un voyage passionnant à la découverte des chaînes de caractères en PL/SQL. Ne vous inquiétez pas si vous n'avez jamais écrit une ligne de code auparavant - je serai votre guide amical, et nous avancerons pas à pas. À la fin de ce tutoriel, vous manipulerez les chaînes de caractères comme un pro !
Qu'est-ce que les chaînes de caractères ?
Avant de plonger dedans, penchons-nous sur les bases. En programmation, une chaîne de caractères est simplement une séquence de caractères. Cela pourrait être un mot, une phrase, ou même un paragraphe entier. Pensez à n'importe quel texte que vous pourriez taper sur votre clavier.
Déclaration des variables de chaîne
En PL/SQL, nous devons déclarer nos variables avant de les utiliser. C'est comme se présenter avant de commencer une conversation - c'est juste une question de politesse !
Déclaration de base de chaîne
Commençons par la manière la plus simple de déclarer une variable de chaîne :
DECLARE
my_name VARCHAR2(50) := 'John Doe';
BEGIN
DBMS_OUTPUT.PUT_LINE('Mon nom est : ' || my_name);
END;
Dans cet exemple :
- Nous utilisons le mot-clé
DECLARE
pour commencer nos déclarations de variables. -
my_name
est le nom de notre variable. -
VARCHAR2(50)
signifie qu'il s'agit d'une chaîne de longueur variable pouvant contenir jusqu'à 50 caractères. -
:=
est l'opérateur d'affectation, similaire à un signe égal. - 'John Doe' est la valeur initiale que nous affectons à
my_name
.
Lorsque nous exécutons ce code, il affichera : "Mon nom est : John Doe"
Utilisation de différents types de chaîne
PL/SQL propose plusieurs types de chaînes. Jetons un œil à quelques-uns :
DECLARE
v_varchar2 VARCHAR2(20) := 'Bonjour, le monde!';
v_char CHAR(10) := 'Fixe ';
v_long LONG := 'Ceci est une chaîne longue qui peut contenir jusqu'à 32 760 caractères';
BEGIN
DBMS_OUTPUT.PUT_LINE('VARCHAR2 : ' || v_varchar2);
DBMS_OUTPUT.PUT_LINE('CHAR : ' || v_char);
DBMS_OUTPUT.PUT_LINE('LONG : ' || v_long);
END;
Voici ce qui se passe :
-
VARCHAR2
est le type le plus commun, stockant des chaînes de longueur variable. -
CHAR
est pour les chaînes de longueur fixe. Notez comment il remplit l'espace supplémentaire avec des espaces blancs. -
LONG
peut stocker des chaînes très longues, mais il est moins flexible dans certaines opérations.
Fonctions et opérateurs de chaîne en PL/SQL
Maintenant que nous savons comment déclarer des chaînes, mettons-nous à l'œuvre !
Concaténation
La concaténation est juste un mot fancy pour "joindre des chaînes ensemble". En PL/SQL, nous utilisons l'opérateur ||
:
DECLARE
first_name VARCHAR2(20) := 'Jane';
last_name VARCHAR2(20) := 'Smith';
full_name VARCHAR2(41);
BEGIN
full_name := first_name || ' ' || last_name;
DBMS_OUTPUT.PUT_LINE('Nom complet : ' || full_name);
END;
Cela affichera : "Nom complet : Jane Smith"
Fonctions de chaîne
PL/SQL offre un trésor de fonctions intégrées pour manipuler les chaînes. Explorons quelques-unes des plus utiles :
Fonction | Description | Exemple |
---|---|---|
UPPER | Convertit la chaîne en majuscules | UPPER('hello') renvoie 'HELLO' |
LOWER | Convertit la chaîne en minuscules | LOWER('WORLD') renvoie 'world' |
INITCAP | Met en majuscule la première lettre de chaque mot | INITCAP('john doe') renvoie 'John Doe' |
LENGTH | Retourne la longueur de la chaîne | LENGTH('OpenAI') renvoie 6 |
SUBSTR | Extrait une partie de la chaîne | SUBSTR('HelloWorld', 1, 5) renvoie 'Hello' |
TRIM | Supprime les caractères spécifiés du début/fin | TRIM(' Hello ') renvoie 'Hello' |
REPLACE | Remplace toutes les occurrences d'un sous-chaîne | REPLACE('JACK and JILL','J','BL') renvoie 'BLACK and BLILL' |
Voyons ces fonctions en action :
DECLARE
v_string VARCHAR2(50) := ' hello, world! ';
BEGIN
DBMS_OUTPUT.PUT_LINE('Original : ' || v_string);
DBMS_OUTPUT.PUT_LINE('UPPER : ' || UPPER(v_string));
DBMS_OUTPUT.PUT_LINE('LOWER : ' || LOWER(v_string));
DBMS_OUTPUT.PUT_LINE('INITCAP : ' || INITCAP(v_string));
DBMS_OUTPUT.PUT_LINE('LENGTH : ' || LENGTH(v_string));
DBMS_OUTPUT.PUT_LINE('SUBSTR : ' || SUBSTR(v_string, 3, 5));
DBMS_OUTPUT.PUT_LINE('TRIM : ' || TRIM(v_string));
DBMS_OUTPUT.PUT_LINE('REPLACE : ' || REPLACE(v_string, 'o', '0'));
END;
Ce code affichera :
Original : hello, world!
UPPER : HELLO, WORLD!
LOWER : hello, world!
INITCAP : Hello, World!
LENGTH : 16
SUBSTR : hello
TRIM : hello, world!
REPLACE : hell0, w0rld!
Mettre tout ensemble
Maintenant, combinons ce que nous avons appris dans un exemple plus complexe :
DECLARE
v_sentence VARCHAR2(100) := 'Le renard brun saute par-dessus le chien paresseux';
v_word VARCHAR2(20);
v_count NUMBER;
BEGIN
-- Compte le nombre de mots
v_count := LENGTH(v_sentence) - LENGTH(REPLACE(v_sentence, ' ', '')) + 1;
DBMS_OUTPUT.PUT_LINE('Nombre de mots : ' || v_count);
-- Extrait et met en majuscule le 4e mot
v_word := INITCAP(SUBSTR(v_sentence,
INSTR(v_sentence, ' ', 1, 3) + 1,
INSTR(v_sentence, ' ', 1, 4) - INSTR(v_sentence, ' ', 1, 3) - 1));
DBMS_OUTPUT.PUT_LINE('Le 4e mot est : ' || v_word);
-- Remplace 'renard' par 'chat' et 'chien' par 'souris'
v_sentence := REPLACE(REPLACE(v_sentence, 'renard', 'chat'), 'chien', 'souris');
DBMS_OUTPUT.PUT_LINE('Phrase modifiée : ' || v_sentence);
END;
Cet exemple démontre :
- Le comptage des mots en comptant les espaces
- L'extraction d'un mot spécifique en utilisant
SUBSTR
etINSTR
- Le remplacement de plusieurs mots dans une phrase
Output :
Nombre de mots : 9
Le 4e mot est : Renard
Phrase modifiée : Le chat brun saute par-dessus la souris paresseuse
Et voilà ! Vous avez appena fait vos premiers pas dans le merveilleux monde des chaînes de caractères en PL/SQL. Souvenez-vous, la pratique rend parfait, donc n'ayez pas peur d'expérimenter avec ces fonctions et de créer vos propres aventures de manipulation de chaînes.
Avant de vous en rendre compte, vous serez capable de construire des requêtes complexes et d'impressionner vos amis avec votre habileté en PL/SQL. Continuez à coder et amusez-vous avec les chaînes !
Credits: Image by storyset