Heim  >  Artikel  >  Datenbank  >  Detaillierte Erläuterung der Übersetzungsfunktion und Ersetzungsfunktion in Oracle

Detaillierte Erläuterung der Übersetzungsfunktion und Ersetzungsfunktion in Oracle

小云云
小云云Original
2017-12-11 13:31:472103Durchsuche

translate gibt expr zurück, wobei alle Vorkommen jedes Zeichens in from_string durch die entsprechenden Zeichen in to_string ersetzt werden, und die Ersetzungsfunktion konvertiert die gesamte Zeichenfolge search_string in char in die Zeichenfolge replacement_string Werfen wir einen Blick auf die Verwendung von Funktionen und Ersetzungsfunktionen. Ich hoffe, es kann allen helfen.

Funktionssyntax übersetzen:

translate(expr, from_strimg, to_string)

Einführung:

translate gibt expr zurück, wobei alle Vorkommen jedes Zeichens in from_string durch das entsprechende Zeichen in to_string ersetzt werden. Zeichen in expr, die nicht in from_string enthalten sind, werden nicht ersetzt. Wenn expr eine Zeichenfolge ist, müssen Sie sie in einfache Anführungszeichen setzen. Die Argumente für from_string können mehr Zeichen enthalten als to_string. In diesem Fall haben die zusätzlichen Zeichen am Ende von from_string keine entsprechenden Zeichen in to_string. Wenn diese zusätzlichen Zeichen im Zeichen vorkommen, werden sie aus dem Rückgabewert entfernt.

Sie können nicht die leere Zeichenfolge von to_string verwenden, um alle Zeichen in from_string aus dem Rückgabewert zu entfernen. Oracle Database interpretiert leere Zeichenfolgen als Null. Wenn diese Funktion leere Parameter hat, wird Null zurückgegeben.

Übersetzen bietet Funktionen im Zusammenhang mit der Ersetzungsfunktion. Ersetzen ermöglicht das Ersetzen einer Zeichenfolge durch eine andere sowie das Löschen von Zeichenfolgen. Mit Translate können Sie mehrere einzelne Zeichen in einem Vorgang eins-zu-eins ersetzen.

Diese Funktion unterstützt CLOB-Daten nicht direkt. Allerdings können CLOBs als Parameter mit impliziter Datenkonvertierung übergeben werden.

Beispiel:

Die folgende Anweisung wandelt einen Satz in eine Zeichenfolge mit Unterstrich-Trennzeichen um. from_string enthält vier Zeichen: Nummernzeichen, Dollarzeichen, Leerzeichen, Sternchen. to_string enthält nur ein @-Symbol und zwei Unterstriche. Dadurch bleibt das vierte Zeichen in from_string ohne entsprechenden Ersatz, sodass das Sternchen aus dem zurückgegebenen Wert entfernt wird.

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

Ersetzungsfunktion

Syntax:

REPLACE(char, search_string,replacement_string)

Verwendung:

Konvertieren Sie alle Zeichenfolgen „search_string“ in char in „string replacement_string“.

Beispiel:

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

Analyse:

Nr . In einem Beispiel, weil die Zeichenfolge, die nicht mit „fk“ in „FGSGSWSGS“ übereinstimmt,

Der Rückgabewert ist immer noch „fgsgswsgs“; die Zeichenfolge „sg“ wird vollständig in „eeerrrttt“ umgewandelt.

Zusammenfassung: Ersetzen und Übersetzen sind beides Substitutionsfunktionen.

Ersetzen ist nur für Zeichenfolgen gedacht, während Übersetzen für ein einzelnes Zeichen. Der Unterschied zwischen

und der Ersetzungsfunktion

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

Die obige Übersetzungsfunktion # wird durch @ ersetzt, % wird durch .

Ersetzen erzielt diesen Effekt jedoch nicht, da die Gesamtkombination von #% nicht gefunden wird

Verwandte Empfehlungen:


Oracle Basic Learning Child-Abfrage

Verwendung von Oracle-Distinct

Eine kurze Analyse der Anwendung von Tabellenfunktionen in Oracle

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Übersetzungsfunktion und Ersetzungsfunktion in Oracle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn