Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Hàm ASCII () trong Oracle

Trong Cơ sở dữ liệu Oracle, ASCII() hàm trả về biểu diễn thập phân trong bộ ký tự cơ sở dữ liệu của ký tự đầu tiên trong đối số của nó.

Cú pháp

Cú pháp như sau:

ASCII(char)

Ở đâu char thuộc loại dữ liệu CHAR , VARCHAR2 , NCHAR hoặc NVARCHAR2 .

ASCII() chỉ trả về giá trị ASCII dạng số của ký tự đầu tiên của chuỗi này.

Ví dụ

Dưới đây là một ví dụ đơn giản để chứng minh:

SELECT ASCII('Oracle')
FROM DUAL;

Kết quả:

79

Điều này cho chúng ta biết rằng ký tự hoa O có giá trị ASCII dạng số là 79 .

Như đã đề cập, ASCII() chỉ trả về giá trị ASCII của đầu tiên tính cách. Do đó, điều sau tạo ra cùng một kết quả:

SELECT ASCII('O')
FROM DUAL;

Kết quả:

79

Để chứng minh thêm điều này, hãy lấy giá trị ASCII bằng số từ mỗi chữ cái trong chuỗi trên:

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;

Kết quả:

    O      r     a     c      l      e 
_____ ______ _____ _____ ______ ______ 
   79    114    97    99    108    101 

Phân biệt chữ hoa chữ thường

Các chữ cái viết hoa có giá trị ASCII khác với giá trị chữ thường tương đương của chúng.

Ví dụ:

SELECT 
    ASCII('R') AS "R",
    ASCII('r') AS "r"
FROM DUAL;

Kết quả:

    R      r 
_____ ______ 
   82    114

Một ví dụ về cơ sở dữ liệu

Đây là một ví dụ về việc sử dụng ASCII() trong một truy vấn cơ sở dữ liệu:

SELECT 
  first_name, 
  ASCII(first_name) AS "ASCII value of leftmost character"
FROM employees
FETCH FIRST 10 ROWS ONLY;

Kết quả:

   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 

Ký tự ngoài cùng bên phải

Ở đây, tôi sử dụng SUBSTR() hàm để trả về ký tự ngoài cùng bên phải của mỗi tên vật nuôi, sau đó sử dụng lại ký tự đó với ASCII() hàm trả về giá trị ASCII cho ký tự đó.

SELECT 
  first_name, 
  SUBSTR(first_name, -1) AS "Rightmost character",
  ASCII(SUBSTR(first_name, -1)) AS "ASCII"
FROM employees
FETCH FIRST 10 ROWS ONLY;

Kết quả:

   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

Chuỗi trống

Cung cấp một chuỗi trống dẫn đến null được trả lại.

SET NULL 'null';
SELECT ASCII('')
FROM DUAL;

Kết quả:

   ASCII('') 
____________ 
        null

Theo mặc định, SQLcl và SQL * Plus trả về một khoảng trống bất cứ khi nào null xảy ra do một SELECT trong SQL tuyên bố.

Tuy nhiên, bạn có thể sử dụng SET NULL để chỉ định một chuỗi khác được trả về. Ở đây tôi đã chỉ định rằng chuỗi null nên được trả lại.

Giá trị rỗng

Chuyển null kết quả là null :

SELECT ASCII(null)
FROM DUAL;

Kết quả:

   ASCII(NULL) 
______________ 
          null

Thiếu đối số

Việc gọi hàm với mà không truyền đối số dẫn đến lỗi:

SELECT ASCII()
FROM DUAL;

Kết quả:

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:

Điều này cũng tương tự khi quá nhiều đối số được truyền:

SELECT ASCII('a', 'b')
FROM DUAL;

Kết quả:

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:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuỗi dài trong N-Hibernate với Oracle gây ra lỗi

  2. Tìm nạp dữ liệu từ SQL Server sang SqlDataReader hoạt động như thế nào?

  3. Các bước đồng bộ Chế độ chờ với Cơ sở dữ liệu chính trong Oracle

  4. Lấy thư từ Hộp thư bằng API PL / SQL Mail_Client

  5. ORA-12560:TNS:lỗi bộ điều hợp giao thức