Si está tratando de evitar el reverse()
no documentado podría usar la función utl_raw.reverse()
función
en cambio, también con la conversión adecuada y desde RAW:
select utl_i18n.raw_to_char(
utl_raw.reverse(
utl_i18n.string_to_raw('Some string', 'AL32UTF8')), 'AL32UTF8')
from dual;
UTL_I18N.RAW_TO_CHAR(UTL_RAW.REVERSE(UTL_I18N.STRING_TO_RAW('SOMESTRING','AL32UT
--------------------------------------------------------------------------------
gnirts emoS
Eso es tomar un valor original; haciendo utl_i18n.string_to_raw()
en ese; luego pasar eso a utl_raw.reverse()
; luego pasando el resultado de eso de vuelta a través de utl_i18n.raw_to_char()
.
No estoy del todo seguro de cómo se manejará eso con los caracteres de varios bytes, o qué te gustaría que sucediera con ellos de todos modos...
O una variación de la discusión a la que @RahulTripathi se vinculó , sin el manejo del juego de caracteres:
select utl_raw.cast_to_varchar2(utl_raw.reverse(utl_raw.cast_to_raw('Some string')))
from dual;
UTL_RAW.CAST_TO_VARCHAR2(UTL_RAW.REVERSE(UTL_RAW.CAST_TO_RAW('SOMESTRING')))
--------------------------------------------------------------------------------
gnirts emoS
Pero ese hilo también señala que solo funciona para caracteres de un solo byte.