Se stai cercando di evitare il reverse()
non documentato funzione è possibile utilizzare il utl_raw.reverse()
funzione
invece, anche con opportuna conversione e da 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
Quindi sta assumendo un valore originale; facendo utl_i18n.string_to_raw()
su quello; quindi passandolo a utl_raw.reverse()
; quindi ritrasmettendo il risultato attraverso utl_i18n.raw_to_char()
.
Non sono del tutto sicuro di come si comporterà con i caratteri multibyte, o cosa vorresti succedere a quelli comunque...
O una variazione dalla la discussione a cui @RahulTripathi si è collegato , senza la gestione del set di caratteri:
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
Ma quel thread rileva anche che funziona solo per caratteri a byte singolo.