Heim >Datenbank >MySQL-Tutorial >Detaillierte Erläuterung der Übersetzungsfunktion und Ersetzungsfunktion in Oracle
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:
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!