Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara membalikkan string di Oracle (11g) SQL tanpa menggunakan fungsi REVERSE()

Jika Anda mencoba menghindari reverse() . yang tidak berdokumen fungsi Anda dapat menggunakan utl_raw.reverse() fungsi sebagai gantinya, dengan konversi yang sesuai juga dan dari 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                                                                     

Jadi itu mengambil nilai asli; melakukan utl_i18n.string_to_raw() pada itu; lalu meneruskannya ke utl_raw.reverse(); kemudian meneruskan hasilnya kembali melalui utl_i18n.raw_to_char() .

Tidak sepenuhnya yakin bagaimana itu akan mengatasi karakter multibyte, atau apa yang Anda inginkan terjadi pada karakter tersebut...

Atau variasi dari diskusi yang ditautkan ke @RahulTripathi , tanpa penanganan set karakter:

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                                                                     

Tetapi utas itu juga mencatat bahwa itu hanya berfungsi untuk karakter bita tunggal.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Alternatif sql server TOP di oracle

  2. Apakah aman untuk meletakkan indeks pada Tabel Sementara Oracle?

  3. Instalasi SonarQube dengan Oracle DB - Mendapatkan pengguna tidak ada

  4. Oracle:Hubungkan Dengan Loop dalam data pengguna

  5. Hubungkan database MS SQL Server ke database Oracle 11g