Oracle Databaseでは、ASCII()
関数は、引数の最初の文字のデータベース文字セットの10進表現を返します。
構文
構文は次のようになります:
ASCII(char)
char
データ型はCHAR
、VARCHAR2
、NCHAR
、またはNVARCHAR2
。
ASCII()
この文字列の最初の文字のみの数値ASCII値を返します。
例
簡単な例を次に示します。
SELECT ASCII('Oracle')
FROM DUAL;
結果:
79
これは、大文字のO
であることを示しています。 79
のASCII数値を持っています 。
前述のように、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 value of leftmost character _____________ ____________________________________ Ellen 69 Sundar 83 Mozhe 77 David 68 Hermann 72 Shelli 83 Amit 65 Elizabeth 69 Sarah 83 David 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 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
空の文字列
空の文字列を指定すると、null
になります 返送されます。
SET NULL 'null';
SELECT ASCII('')
FROM DUAL;
結果:
ASCII('') ____________ null
デフォルトでは、SQLclおよびSQL * Plusは、null
の場合は常に空白を返します。 SQL SELECT
の結果として発生します 声明。
ただし、SET NULL
は使用できます 返される別の文字列を指定します。ここでは、文字列null
を指定しました 返却する必要があります。
ヌル値
null
を渡す 結果はnull
:
SELECT ASCII(null)
FROM DUAL;
結果:
ASCII(NULL) ______________ null
引数がありません
引数を渡さずに関数を呼び出すと、エラーが発生します:
SELECT ASCII()
FROM DUAL;
結果:
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:
渡される引数が多すぎる場合も同じです:
SELECT ASCII('a', 'b')
FROM DUAL;
結果:
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: