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 !

PL/SQL - Strings

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 :

  1. Le comptage des mots en comptant les espaces
  2. L'extraction d'un mot spécifique en utilisant SUBSTR et INSTR
  3. 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