Name

TRANSLATE

Synopsis

The TRANSLATE function is a variation on REPLACE. REPLACE replaces every instance of a set of characters with another set of characters; that is, REPLACE works with entire words or patterns. TRANSLATE replaces single characters at a time, translating the nth character in the search set to the nth character in the replacement set. The specification of the TRANSLATE function is as follows:

FUNCTION TRANSLATE 
   (string_in IN VARCHAR2, 
    search_set IN VARCHAR2, 
    replace_set VARCHAR2)
RETURN VARCHAR2

where string_in is the string in which characters are to be translated, search_set is the set of characters to be translated (if found), and replace_set is the set of characters that will be placed in the string. Unlike REPLACE, where the last argument can be left off, you must include all three arguments when you use TRANSLATE. Any of the three arguments may, however, be NULL, in which case TRANSLATE always returns NULL.

Here are some examples of TRANSLATE:

TRANSLATE ('abcd', 'ab', '12') --> '12cd'

TRANSLATE ('12345', '15', 'xx') --> 'x234x'

TRANSLATE ('grumpy old possum', 'uot', '%$*') -->   'gr%mpy $ld p$ss%m'

TRANSLATE ('my language needs the letter e', 'egms', 'X') 
 --> 
   'y lanuaX nXXd thX lXttXr X';

TRANSLATE ('please go away', 'a', NULL) --> NULL

You can deduce a number of the usage rules for TRANSLATE from the above examples, but we’ll spell them out here:

  • If the search set contains a character not found in the string, then no translation is performed for that character. ...

Get Oracle PL/SQL Programming, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.