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: