Als je de ongedocumenteerde reverse()
. probeert te vermijden functie kunt u de utl_raw.reverse()
functie
in plaats daarvan, ook met de juiste conversie en van 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
Dat is dus een originele waarde aannemen; utl_i18n.string_to_raw()
. doen op dat; geef dat dan door aan utl_raw.reverse()
; vervolgens het resultaat daarvan doorgeven via utl_i18n.raw_to_char()
.
Ik weet niet helemaal zeker hoe dat zal omgaan met multibyte-tekens, of wat je daar sowieso mee wilt doen...
Of een variatie op de discussie waar @RahulTripathi naar verwijst , zonder de karaktersetbehandeling:
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
Maar die thread merkt ook op dat het alleen werkt voor tekens van één byte.