Dans ce tutoriel, nous allons apprendre à utiliser la fonction replace() dans Oracle pour remplacer toutes les occurrences d'une sous-chaîne par un autre jeu de caractères.
Syntaxe de la fonction Oracle Replace()
Le code suivant montre la syntaxe de la fonction replace() :
REMPLACER ( chaîne_source, sous-chaîne, chaîne_de remplacement ) ;
La fonction accepte trois paramètres :
- source_string – définit la chaîne source à rechercher.
- Sous-chaîne – définit la sous-chaîne à remplacer.
- replacement_string – établit la chaîne ou le jeu de caractères qui sont substitués à la place de la sous-chaîne. C'est un paramètre optionnel. Si la valeur du paramètre replacement_string est manquante, la fonction supprime toutes les occurrences de la sous-chaîne de la chaîne source.
De même, si la sous-chaîne est vide, la fonction ne fait rien et renvoie la chaîne_source.
La fonction renvoie un type de chaîne avec toutes les occurrences de la sous-chaîne remplacées par replacement_string.
Exemples de fonctions Oracle Replace()
Les exemples suivants montrent comment la fonction se comporte sous différents types de paramètres et d'entrée :
Exemple 1 - Remplacer l'occurrence de sous-chaîne
L'exemple ci-dessous illustre l'utilisation principale de la fonction replace() avec tous les paramètres d'entrée fournis.
sélectionner remplacer ( 'Développement de la base de données Oracle' , 'un B' , 'xy' ) AS remplacédu double ;
La requête ci-dessus utilise la fonction replace() pour remplacer les caractères (ab) par (xy). Sortie résultante :
REMPLACÉ |--------------------------+
Développement de bases de données Oracle |
Exemple 2 - Utilisation de la fonction Replace pour supprimer une sous-chaîne
Comme mentionné, nous pouvons utiliser la fonction replace () pour supprimer une sous-chaîne de la chaîne source. Cela se produit lorsque nous ne fournissons pas la valeur de la sous-chaîne comme indiqué :
SÉLECTIONNER remplacer ( 'https://linuxhint.com' , 'https://' ) AS d FROM double ;Résultat:
ré |--------------+
linuxhint.com |
Exemple 3 – Remplacer des valeurs dans un tableau
Nous utilisons souvent la fonction replace() pour remplacer des valeurs dans une table de base de données. Prenons l'exemple de tableau ci-dessous :
créer une table sample_data(
identifiant Numéro,
prénom varchar2 ( cinquante ) ,
adresse_ip varchar2 ( vingt ) ,
btc_address varchar2 ( cinquante ) ,
credit_card varchar2 ( cinquante ) ,
identifiant varchar2 ( 40 ) ,
contrainte sample_pk clé primaire ( identifiant )
) ;
insérer dans sample_data ( identifiant , prénom, adresse_ip, adresse_btc, carte_de_crédit, identifiant )
valeurs ( Onze , 'Wallas' , '169.158.70.77' , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;
insérer dans sample_data ( identifiant , prénom, adresse_ip, adresse_btc, carte_de_crédit, identifiant )
valeurs ( 12 , 'Ian' , '148.190.10.178' , '1ADxBV7n9JeDDcb8pL24J9wV54mcSRHdu7' , '4017956704480827' ,
'a69fe590-bc1b-4001-8ff8-154bcdb5802d' ) ;
insérer dans sample_data ( identifiant , prénom, adresse_ip, adresse_btc, carte_de_crédit, identifiant )
valeurs ( 13 , 'Pâques' , '150.86.18.140' , '126hVKom2Foy9LEA6M4pUAT1h97c2rSD8B' , '4017953296787867' ,
'34ac9385-9e1e-4d13-9537-c4eedb9f2c35' ) ;
Déclaration avant la mise à jour :
SELECT FIRST_NAME, IP_ADDRESS, CREDIT_CARD FROM SAMPLE_DATA sd ;
Nous pouvons utiliser la fonction replace() pour remplacer toutes les occurrences de 4 dans la colonne credit_card par un 5.
MISE À JOUR SAMPLE_DATA SET CREDIT_CARD = REMPLACER ( CARTE DE CRÉDIT, '4' , '5' ) ;Après la déclaration de mise à jour :
Dans le tableau résultant, nous pouvons vérifier que les valeurs des colonnes credit_card ont été remplacées de 4 à 5.
Conclusion
Grâce à ce tutoriel, vous avez compris le fonctionnement de la fonction replace() dans les bases de données Oracle.