Oracle
 sql >> база данни >  >> RDS >> Oracle

ASCII() функция в Oracle

В 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 възниква в резултат на SQL SELECT изявление.

Можете обаче да използвате 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 - "невалиден брой аргументи"*Причина:*Действие:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON_ARRAY() Функция в Oracle

  2. Как да експортирате схема на база данни в Oracle в дъмп файл

  3. Повтаряне на редове въз основа на стойността на колоната във всеки ред

  4. Обработка на данни за семена в R12.2 онлайн кръпка

  5. Как да получите текущата дата в Oracle