Maison  >  Article  >  base de données  >  Quelles sont les fonctions de remplacement dans Oracle ?

Quelles sont les fonctions de remplacement dans Oracle ?

青灯夜游
青灯夜游original
2022-02-24 18:12:3414208parcourir

Les fonctions de remplacement d'oracle sont : 1. fonction translation(), syntaxe "TRANSLATE(char, from, to)" ; 2. fonction replace(), syntaxe "REPLACE (chaîne, valeur de recherche, valeur de remplacement)".

Quelles sont les fonctions de remplacement dans Oracle ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, version Oracle 11g, ordinateur Dell G3.

Remplacer la fonction remplacer et traduire la fonction dans Oracle

1.translate

Syntaxe : TRANSLATE(char, from, to)TRANSLATE(char, from, to)

用法:返回将出现在from中的每个字符替换为to中的相应字符以后的字符串。

            若from比to字符串长,那么在from中比to中多出的字符将会被删除。

            三个参数中有一个是空,返回值也将是空值。

举例:

SQL> select translate('abcdefga','abc','wo') 返回值 from dual;

返回值

 wodefgw

分析:

该语句要将'abcdefga'中的'abc'转换为'wo',由于'abc'中'a'对应'wo'中的'w',故将'abcdefga'中的'a'全部转换成'w';

而'abc'中'b'对应'wo'中的'o',故将'abcdefga'中的'b'全部转换成'o';

'abc'中的'c'在'wo'中没有与之对应的字符,故将'abcdefga'中的'c'全部删除;

简单说来,就是将from中的字符转换为to中与之位置对应的字符,若to中找不到与之对应的字符,返回值中的该字符将会被删除。

在实际的业务中,可以用来删除一些异常数据,比如表a中的一个字段t_no表示电话号码,而电话号码本身应该是一个由数字组成的字符串,为了删除那些含有非数字的异常数据,就用到了translate函数:

SQL> delete from a,
          where length(translate(trim(a.t_no),
                   '0123456789' || a.t_no,
                             &#39;0123456789&#39;)) <> length(trim(a.t_no));

2.replace

语法:REPLACE(char, search_string,replacement_string)

Utilisation : le retour apparaîtra dans chaque Le caractère in est remplacé par la chaîne suivant le caractère in to correspondant. T Si le De est plus long que la chaîne de caractères TO, alors les caractères supplémentaires dans le De seront supprimés.

                                                                                                                                                                                                            Si l'un des trois paramètres est vide, la valeur de retour sera également nulle.

Exemple :

SQL> select REPLACE(&#39;fgsgswsgs&#39;, &#39;fk&#39; ,&#39;j&#39;) 返回值 from dual;

Valeur de retour

fgsgswsgs

Analyse :

Cette instruction consiste à convertir le "abc" dans "abcdefga" en "wo", car le "a" dans "abc" correspond au "w" dans 'wo'', donc tous les 'a' dans 'abcdefga' sont convertis en 'w' ;

Le 'b' dans 'abc' correspond au 'o' dans 'wo', donc tous les 'b' dans 'abcdefga' ' sont convertis Convertir en 'o';
  • Le 'c' dans 'abc' n'a pas de caractère correspondant dans 'wo', donc supprimez tous les 'c' dans 'abcdefga'

    En termes simples, c'est pour changer de Les caractères dans sont convertis en caractères correspondant à leurs positions dans to. Si les caractères correspondants ne sont pas trouvés dans to, les caractères de la valeur de retour seront supprimés.
  • Dans les affaires réelles, il peut être utilisé pour supprimer certaines données anormales. Par exemple, un champ t_no dans le tableau a représente un numéro de téléphone, et le numéro de téléphone lui-même doit être une chaîne composée de chiffres afin de supprimer les exceptions contenant. non-nombres Pour les données, la fonction de traduction est utilisée :

    SQL> select REPLACE(&#39;fgsgswsgs&#39;, &#39;sg&#39; ,&#39;eeerrrttt&#39;) 返回值 from dual;

  • 2.replace

Syntaxe : REPLACE(char, search_string,replacement_string)

Utilisation : Convertir toute la chaîne search_string en char en chaîne de caractères chaîne_de_remplacement.

Exemple 1 : 🎜
fgeeerrrtttsweeerrrttts
🎜Valeur de retour 🎜rrreee🎜Exemple 2 : 🎜rrreee🎜Valeur de retour 🎜rrreee🎜Analyse : 🎜🎜🎜🎜Dans le premier exemple, puisqu'il n'y a pas de chaîne correspondant à 'fk' dans 'fgsgs wsgs', donc , la valeur de retour est toujours 'fgsgswsgs' ; 🎜🎜🎜🎜Dans le deuxième exemple, toute la chaîne 'sg' dans 'fgsgswsgs' est convertie en 'eeerrrttt'. 🎜🎜🎜🎜Résumé : Pour résumer, remplacer et traduire sont tous deux des fonctions de remplacement, sauf que le remplacement cible une chaîne, tandis que la traduction cible un seul caractère. 🎜🎜Tutoriel recommandé : "🎜Tutoriel 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