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: