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

ASCII() Fungsi di Oracle

Di Oracle Database, ASCII() fungsi mengembalikan representasi desimal dalam kumpulan karakter basis data dari karakter pertama argumennya.

Sintaks

Sintaksnya seperti ini:

ASCII(char)

Dimana char bertipe data CHAR , VARCHAR2 , NCHAR , atau NVARCHAR2 .

ASCII() mengembalikan nilai ASCII numerik hanya dari karakter pertama dari string ini.

Contoh

Berikut adalah contoh sederhana untuk ditunjukkan:

SELECT ASCII('Oracle')
FROM DUAL;

Hasil:

79

Ini memberitahu kita bahwa huruf besar O memiliki nilai ASCII numerik 79 .

Seperti yang disebutkan, ASCII() hanya mengembalikan nilai ASCII dari pertama karakter. Oleh karena itu, berikut ini menghasilkan hasil yang sama:

SELECT ASCII('O')
FROM DUAL;

Hasil:

79

Untuk mendemonstrasikan ini lebih lanjut, mari dapatkan nilai ASCII numerik dari setiap huruf dalam string di atas:

SELECT 
    ASCII('O') AS "O",
    ASCII('r') AS "r",
    ASCII('a') AS "a",
    ASCII('c') AS "c",
    ASCII('l') AS "l",
    ASCII('e') AS "e"
FROM DUAL;

Hasil:

    O      r     a     c      l      e 
_____ ______ _____ _____ ______ ______ 
   79    114    97    99    108    101 

Sensitivitas Huruf Besar

Huruf besar memiliki nilai ASCII yang berbeda dengan padanan huruf kecilnya.

Contoh:

SELECT 
    ASCII('R') AS "R",
    ASCII('r') AS "r"
FROM DUAL;

Hasil:

    R      r 
_____ ______ 
   82    114

Contoh Basis Data

Berikut ini contoh penggunaan ASCII() dalam kueri basis data:

SELECT 
  first_name, 
  ASCII(first_name) AS "ASCII value of leftmost character"
FROM employees
FETCH FIRST 10 ROWS ONLY;

Hasil:

   FIRST_NAME    ASCII value of leftmost character 
_____________ ____________________________________ 
Ellen                                           69 
Sundar                                          83 
Mozhe                                           77 
David                                           68 
Hermann                                         72 
Shelli                                          83 
Amit                                            65 
Elizabeth                                       69 
Sarah                                           83 
David                                           68 

Karakter Paling Kanan

Di sini, saya menggunakan SUBSTR() berfungsi untuk mengembalikan karakter paling kanan dari setiap nama hewan peliharaan, dan kemudian menggunakannya lagi dengan ASCII() berfungsi untuk mengembalikan nilai ASCII untuk karakter tersebut.

SELECT 
  first_name, 
  SUBSTR(first_name, -1) AS "Rightmost character",
  ASCII(SUBSTR(first_name, -1)) AS "ASCII"
FROM employees
FETCH FIRST 10 ROWS ONLY;

Hasil:

   FIRST_NAME    Rightmost character    ASCII 
_____________ ______________________ ________ 
Ellen         n                           110 
Sundar        r                           114 
Mozhe         e                           101 
David         d                           100 
Hermann       n                           110 
Shelli        i                           105 
Amit          t                           116 
Elizabeth     h                           104 
Sarah         h                           104 
David         d                           100

String Kosong

Memberikan hasil string kosong di null dikembalikan.

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

Hasil:

   ASCII('') 
____________ 
        null

Secara default, SQLcl dan SQL*Plus mengembalikan ruang kosong setiap kali null terjadi sebagai akibat dari SQL SELECT penyataan.

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

Nilai Null

Melewati null menghasilkan null :

SELECT ASCII(null)
FROM DUAL;

Hasil:

   ASCII(NULL) 
______________ 
          null

Argumen Tidak Ada

Memanggil fungsi dengan tanpa meneruskan argumen menghasilkan kesalahan:

SELECT ASCII()
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT ASCII()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action:

Sama halnya jika terlalu banyak argumen yang dilontarkan:

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

Hasil:

Error starting at line : 1 in command -
SELECT ASCII('a', 'b')
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan daftar semua tabel di Oracle?

  2. Menggunakan TUPLES untuk menempatkan lebih dari 1000 entri dalam klausa SQL IN

  3. Bagaimana cara keluar dari skrip di SQLPlus ketika terjadi kesalahan dan kembali ke prompt SQLPlus, tanpa memutuskan atau keluar dari SQLPlus?

  4. Kapan saya harus menyarangkan blok PL/SQL BEGIN...END?

  5. TZ_OFFSET() Fungsi di Oracle