В Oracle Database, ASCII() функцията връща десетичното представяне в набора от знаци на базата данни на първия знак от нейния аргумент.
Синтаксис
Синтаксисът е така:
ASCII(char)
Където char е от тип данни CHAR , VARCHAR2 , NCHAR или NVARCHAR2 .
ASCII() връща числовата ASCII стойност само на първия знак от този низ.
Пример
Ето един прост пример за демонстрация:
SELECT ASCII('Oracle')
FROM DUAL; Резултат:
79
Това ни казва, че главната буква O има числова ASCII стойност на 79 .
Както споменахме, ASCII() връща само ASCII стойността на първата характер. Следователно, следното дава същия резултат:
SELECT ASCII('O')
FROM DUAL; Резултат:
79
За да демонстрираме това допълнително, нека получим числовата ASCII стойност от всяка буква в горния низ:
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; Резултат:
O r a c l e _____ ______ _____ _____ ______ ______ 79 114 97 99 108 101
Чувствителност на регистрите
Главните букви имат различна ASCII стойност от техните еквиваленти с малки букви.
Пример:
SELECT
ASCII('R') AS "R",
ASCII('r') AS "r"
FROM DUAL; Резултат:
R r _____ ______ 82 114
Пример за база данни
Ето пример за използване на ASCII() в заявка към база данни:
SELECT
first_name,
ASCII(first_name) AS "ASCII value of leftmost character"
FROM employees
FETCH FIRST 10 ROWS ONLY; Резултат:
FIRST_NAME ASCII стойност на най-левия знак _____________ ____________________________________ Елън 69 Сундар 83 Може 77 Дейвид 68 Херман 72 Шели 83 Амит 65 Елизабет 69 Сара 83 Дейвид 68
Най-десният знак
Тук използвам SUBSTR() функция за връщане на най-десния знак от всяко име на домашен любимец и след това го използвайте отново с ASCII() функция за връщане на ASCII стойността за този знак.
SELECT
first_name,
SUBSTR(first_name, -1) AS "Rightmost character",
ASCII(SUBSTR(first_name, -1)) AS "ASCII"
FROM employees
FETCH FIRST 10 ROWS ONLY; Резултат:
FIRST_NAME Най-десният знак ASCII _____________ ______________________ ________ Елън 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Празни низове
Предоставянето на празен низ води до
nullсе връща.SET NULL 'null'; SELECT ASCII('') FROM DUAL;Резултат:
ASCII('') ____________ нулаПо подразбиране SQLcl и SQL*Plus връщат празно пространство всеки път, когато
nullвъзниква в резултат на SQLSELECTизявление.Можете обаче да използвате
SET NULLза да посочите различен низ, който да бъде върнат. Тук посочих, че низътnullтрябва да бъдат върнати.Нулеви стойности
Предаването на
nullводи доnull:SELECT ASCII(null) FROM DUAL;Резултат:
ASCII(NULL) ______________ нулаЛипсващ аргумент
Извикването на функцията с без подаване на аргумент води до грешка:
SELECT ASCII() FROM DUAL;Резултат:
Грешка, започваща от ред:1 в командата -SELECT ASCII()FROM DUALEГрешка в командния ред:1 Колона:8Отчет за грешка -SQL грешка:ORA-00909:невалиден брой аргументи00909. 00000 - "невалиден брой аргументи"*Причина:*Действие:Същото е, когато се предават твърде много аргументи:
SELECT ASCII('a', 'b') FROM DUAL;Резултат:
Грешка, започваща от ред:1 в командата -SELECT ASCII('a', 'b')FROM DUALE Грешка в командния ред:1 Колона:8Отчет за грешка -SQL Грешка:ORA-00909:невалиден брой аргументи00909. 00000 - "невалиден брой аргументи"*Причина:*Действие: