Nếu bạn đang cố gắng tránh reverse()
không có giấy tờ bạn có thể sử dụng hàm utl_raw.reverse()
chức năng
thay vào đó, với chuyển đổi thích hợp cũng như từ 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
Vì vậy, đó là lấy một giá trị ban đầu; đang làm utl_i18n.string_to_raw()
trong vấn đề này; sau đó chuyển nó đến utl_raw.reverse()
; sau đó chuyển kết quả của nó trở lại thông qua utl_i18n.raw_to_char()
.
Không hoàn toàn chắc chắn điều đó sẽ đối phó với các ký tự nhiều byte như thế nào hoặc điều gì bạn muốn xảy ra với những ký tự đó ...
Hoặc một biến thể từ cuộc thảo luận @RahulTripathi được liên kết với , không có xử lý bộ ký tự:
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
Nhưng chuỗi đó cũng lưu ý rằng nó chỉ hoạt động đối với các ký tự byte đơn.