Maison  >  Article  >  base de données  >  Explication détaillée de la fonction de traduction et de la fonction de remplacement dans Oracle

Explication détaillée de la fonction de traduction et de la fonction de remplacement dans Oracle

小云云
小云云original
2017-12-11 13:31:472103parcourir

translate renvoie expr, dans lequel toutes les occurrences de chaque caractère dans from_string sont remplacées par les caractères correspondants dans to_string, et la fonction de remplacement convertit toute la chaîne search_string dans char en chaîne remplacement_string. Cet article partagera avec vous la traduction dans. Oracle Jetons un coup d'œil à l'utilisation de la fonction et remplaçons la fonction. J'espère que cela pourra aider tout le monde.

syntaxe de la fonction de traduction :

translate(expr, from_strimg, to_string)

Introduction :

translate renvoie expr où toutes les occurrences de chaque caractère dans from_string sont remplacées par le caractère correspondant dans to_string. Les caractères dans expr qui ne sont pas dans from_string ne seront pas remplacés. Si expr est une chaîne, vous devez la mettre entre guillemets simples. Les arguments de from_string peuvent contenir plus de caractères que to_string. Dans ce cas, les caractères supplémentaires à la fin de from_string n'ont aucun caractère correspondant dans to_string. Si ces caractères supplémentaires apparaissent dans caractère, ils sont supprimés de la valeur de retour.

Vous ne pouvez pas utiliser la chaîne vide de to_string pour supprimer tous les caractères de from_string de la valeur de retour. Oracle Database interprète les chaînes vides comme nulles et si cette fonction a des paramètres vides, null est renvoyé.

translate fournit des fonctions liées à la fonction de remplacement. replace vous permet de remplacer une chaîne par une autre, ainsi que de supprimer des chaînes. traduire vous permet d'effectuer plusieurs remplacements d'un seul caractère, un à un, en une seule opération.

Cette fonction ne prend pas directement en charge les données CLOB. Cependant, les CLOB peuvent être transmis en tant que paramètres avec conversion de données implicite.

Exemple :

L'instruction suivante convertit une phrase en chaîne avec des délimiteurs de soulignement. from_string contient quatre caractères : signe dièse, signe dollar, espace, astérisque. to_string ne contient qu'un seul symbole @ et deux traits de soulignement. Cela laisse le quatrième caractère de from_string sans remplacement correspondant, donc l'astérisque est supprimé de la valeur renvoyée.

SELECT TRANSLATE('itmyhome#163.com$is my* email', '#$ *', '@__') from dual
----------
itmyhome@163.com_is_my_email

fonction de remplacement

Syntaxe :

REPLACE(char, search_string,replacement_string)

Utilisation :

Convertissez toute la chaîne search_string en char en chaîne remplacement_string.

Exemple :

SQL> select REPLACE('fgsgswsgs', 'fk' ,'j') 返回值 from dual;
      返回值
      ---------
      fgsgswsgs
      SQL> select REPLACE('fgsgswsgs', 'sg' ,'eeerrrttt') 返回值 from dual;
      返回值
      -----------------------
      fgeeerrrtttsweeerrrttts

Analyse :

Non . Dans un exemple, parce que la chaîne qui ne correspond pas au « fk » dans « FGSGSWSGS »,

La valeur de retour est toujours « fgsgswsgs » ; la chaîne « sg » est entièrement convertie en « eeerrrttt ».

Résumé : Pour résumer, remplacer et traduire sont tous deux des fonctions de substitution,

C'est juste que le remplacement est destiné aux chaînes, tandis que la traduction est destinée à un seul caractère. La différence entre

et la fonction de remplacement

select translate('itmyhome#163%com', '#%', '@.') from dual;
select replace('itmyhome#163%com', '#%', '@.') from dual;
---------
itmyhome@163.com
itmyhome#163%com

La fonction de traduction ci-dessus est # est remplacé par @, % est remplacé par .

Cependant, remplacer n'obtient pas cet effet car la combinaison globale de #% n'est pas trouvée

Recommandations associées :


Requête enfant d'apprentissage de base Oracle

Utilisation d'Oracle-distinct

Une brève analyse de l'application des fonctions de table dans Oracle

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn