W bazie danych Oracle ASCII() funkcja zwraca reprezentację dziesiętną w zestawie znaków bazy danych pierwszego znaku swojego argumentu.
Składnia
Składnia wygląda tak:
ASCII(char)
Gdzie char ma typ danych CHAR , VARCHAR2 , NCHAR lub NVARCHAR2 .
ASCII() zwraca wartość numeryczną ASCII tylko pierwszego znaku tego ciągu.
Przykład
Oto prosty przykład do zademonstrowania:
SELECT ASCII('Oracle')
FROM DUAL; Wynik:
79
To mówi nam, że wielka litera O ma wartość numeryczną ASCII 79 .
Jak wspomniano, ASCII() zwraca tylko wartość ASCII pierwszego postać. Dlatego poniższe daje ten sam wynik:
SELECT ASCII('O')
FROM DUAL; Wynik:
79
Aby to dalej zademonstrować, weźmy liczbową wartość ASCII z każdej litery w powyższym ciągu:
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; Wynik:
O r a c l e _____ ______ _____ _____ ______ ______ 79 114 97 99 108 101
Wrażliwość na wielkość liter
Wielkie litery mają inną wartość ASCII niż ich małe odpowiedniki.
Przykład:
SELECT
ASCII('R') AS "R",
ASCII('r') AS "r"
FROM DUAL; Wynik:
R r _____ ______ 82 114
Przykład bazy danych
Oto przykład użycia ASCII() w zapytaniu do bazy danych:
SELECT
first_name,
ASCII(first_name) AS "ASCII value of leftmost character"
FROM employees
FETCH FIRST 10 ROWS ONLY; Wynik:
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
Postać z prawej strony
Tutaj używam SUBSTR() funkcja zwracająca skrajny prawy znak z każdego imienia zwierzaka, a następnie użyj go ponownie z ASCII() funkcja zwracająca wartość ASCII dla tego znaku.
SELECT
first_name,
SUBSTR(first_name, -1) AS "Rightmost character",
ASCII(SUBSTR(first_name, -1)) AS "ASCII"
FROM employees
FETCH FIRST 10 ROWS ONLY; Wynik:
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
Puste ciągi
Dostarczenie pustego ciągu powoduje null zostanie zwrócony.
SET NULL 'null';
SELECT ASCII('')
FROM DUAL; Wynik:
ASCII('')
____________
null
Domyślnie SQLcl i SQL*Plus zwracają spację, gdy null występuje w wyniku polecenia SQL SELECT oświadczenie.
Możesz jednak użyć SET NULL aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null należy zwrócić.
Wartości puste
Przekazywanie null wyniki w null :
SELECT ASCII(null)
FROM DUAL; Wynik:
ASCII(NULL)
______________
null Brakujący argument
Wywołanie funkcji with bez przekazania argumentu skutkuje błędem:
SELECT ASCII()
FROM DUAL; Wynik:
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:
Tak samo jest, gdy przekazywanych jest zbyt wiele argumentów:
SELECT ASCII('a', 'b')
FROM DUAL; Wynik:
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: