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

Fungsi HEXTORAW() di Oracle

Di Oracle Database, HEXTORAW() fungsi mengonversi heksadesimal ke nilai mentah.

Sintaks

Sintaksnya seperti ini:

HEXTORAW(char)

Dimana char dapat berupa salah satu dari CHAR , VARCHAR2 , NCHAR , atau NVARCHAR2 tipe data.

Contoh

Ini contohnya:

SELECT HEXTORAW('74a5cfe') FROM DUAL;

Hasil:

074A5CFE

Kita dapat menggunakan DUMP() fungsi untuk mengetahui tipe data dari nilai kembalian:

SELECT DUMP(HEXTORAW('74a5cfe')) FROM DUAL;

Hasil:

Typ=23 Len=4: 7,74,92,254

Typ=23 memberitahu kita bahwa nilai kembalian adalah tipe 23, yang merupakan tipe ID untuk RAW .

Untuk memperjelas, berikut adalah contoh yang membandingkan string heksadesimal dan nilai mentah:

SELECT 
    DUMP('123') AS "r1",
    DUMP(HEXTORAW('123')) AS "r2"
FROM DUAL;

Hasil:

                       r1                    r2 
_________________________ _____________________ 
Typ=96 Len=3: 49,50,51    Typ=23 Len=2: 1,35   

Nilai heksadesimal adalah tipe 96, yang merupakan tipe ID untuk CHAR dan NCHAR .

Karakter Non Hex

Melewati nilai yang bukan nilai heksadesimal akan menyebabkan kesalahan.

Contoh:

SELECT HEXTORAW('z') FROM DUAL;

Hasil:

Error report -
ORA-01465: invalid hex number

Argumen Null

Jika argumennya null , hasilnya null :

SET NULL 'null';
SELECT HEXTORAW(null)
FROM DUAL;

Hasil:

null

Secara default, SQLcl dan SQL*Plus mengembalikan ruang kosong setiap kali nilai nol muncul sebagai akibat dari SELECT SQL pernyataan.

Namun, Anda dapat menggunakan SET NULL untuk menentukan string berbeda yang akan dikembalikan. Di sini saya menetapkan bahwa string null harus dikembalikan.

Jumlah Argumen Tidak Valid

Memanggil HEXTORAW() tanpa argumen apa pun menghasilkan kesalahan:

SELECT HEXTORAW()
FROM DUAL;

Hasil:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

Dan meneruskan terlalu banyak argumen juga menghasilkan kesalahan:

SELECT HEXTORAW('a', 'b')
FROM DUAL;

Hasil:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ringan untuk Oracle

  2. Buat jumlah kumulatif dalam tampilan oracle

  3. RTRIM() Fungsi di Oracle

  4. Penggunaan FLASHBACK di Oracle

  5. Oracle Regexp untuk mengganti \n,\r dan \t dengan spasi