В Oracle, CHR()
функцията връща знак въз основа на стойностите на кода, предоставени като аргумент.
По-конкретно, той връща символа с двоичен еквивалент на неговия аргумент като VARCHAR2
стойност в набора от знаци на базата данни или, ако посочите USING
NCHAR_CS
, националният набор от символи.
Синтаксис
Синтаксисът е така:
CHR(n [ USING NCHAR_CS ])
Където n
е NUMBER
стойност или всяка стойност, която може да бъде неявно преобразувана в NUMBER
.
USING
NCHAR_CS
аргументът е незадължителен аргумент, който ви позволява да посочите националния набор от знаци.
Пример
Ето един прост пример за демонстрация:
SELECT CHR(65)
FROM DUAL;
Резултат:
CHR(65) __________ A
Тук предоставих номер и CHR()
върна съответния знак. В този случай, цялото число 65
съпоставя с главната буква A
.
Чувствителност на регистрите
Ето пример, който отличава главна буква от нейния аналог:
SELECT
CHR(72),
CHR(104)
FROM DUAL;
Резултат:
CHR(72) CHR(104) __________ ___________ H h
Връщане на многознаков низ
За да произведем многознаков низ, можем да конкатенираме множество CHR()
функции:
Пример:
SELECT CHR(65) || CHR(77)
FROM DUAL;
Резултат:
CHR(65)||CHR(77) ___________________ AM
NCHAR_CS
Аргумент
Ето пример за предаване на (по избор) втори аргумент:
SELECT CHR (257 USING NCHAR_CS)
FROM DUAL;
Резултат:
CHR(257USINGNCHAR_CS) ________________________ ā
Това е същото като използването на NCHR()
функция.
Нулеви стойности
Предаването на null
връща null
:
SET NULL 'null';
SELECT CHR(null)
FROM DUAL;
Резултат:
CHR(NULL) ____________ null
По подразбиране SQLcl и SQL*Plus връщат празно пространство всеки път, когато null
възниква в резултат на SQL SELECT
изявление.
Можете обаче да използвате SET NULL
за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null
трябва да бъдат върнати.
Неправилен брой аргументи
Извикване на CHR()
без подаване на аргументи връща грешка:
SELECT CHR()
FROM DUAL;
Резултат:
Error starting at line : 1 in command - SELECT CHR() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function" *Cause: *Action:
И предаването на грешен брой аргументи води до грешка:
SELECT CHR(1, 2, 3)
FROM DUAL;
Резултат:
Error starting at line : 1 in command - SELECT CHR(1, 2, 3) 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: