I Oracle er CHR()
funktion returnerer et tegn baseret på kodeværdierne angivet som et argument.
Mere specifikt returnerer det tegnet med den binære ækvivalent til dets argument som en VARCHAR2
værdi i enten databasens tegnsæt eller, hvis du angiver USING
NCHAR_CS
, det nationale tegnsæt.
Syntaks
Syntaksen ser sådan ud:
CHR(n [ USING NCHAR_CS ])
Hvor n
er et NUMBER
værdi eller enhver værdi, der implicit kan konverteres til NUMBER
.
USING
NCHAR_CS
argument er et valgfrit argument, der giver dig mulighed for at angive det nationale tegnsæt.
Eksempel
Her er et simpelt eksempel til at demonstrere:
SELECT CHR(65)
FROM DUAL;
Resultat:
CHR(65) __________ A
Her har jeg angivet et tal og CHR()
returnerede det tilsvarende tegn. I dette tilfælde er hele tallet 65
kort til det store bogstav A
.
Skrivar og bogstaver
Her er et eksempel, der adskiller et stort bogstav fra dets modstykke med små bogstaver:
SELECT
CHR(72),
CHR(104)
FROM DUAL;
Resultat:
CHR(72) CHR(104) __________ ___________ H h
Returner en streng med flere tegn
For at producere en streng med flere tegn kan vi sammenkæde flere CHR()
funktioner:
Eksempel:
SELECT CHR(65) || CHR(77)
FROM DUAL;
Resultat:
CHR(65)||CHR(77) ___________________ AM
NCHAR_CS
Argument
Her er et eksempel på at videregive det (valgfrie) andet argument:
SELECT CHR (257 USING NCHAR_CS)
FROM DUAL;
Resultat:
CHR(257USINGNCHAR_CS) ________________________ ā
Dette er det samme som at bruge NCHR()
funktion.
Nul-værdier
Sender null
returnerer null
:
SET NULL 'null';
SELECT CHR(null)
FROM DUAL;
Resultat:
CHR(NULL) ____________ null
Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når null
opstår som et resultat af en SQL SELECT
udmelding.
Du kan dog bruge SET NULL
for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null
skal returneres.
Forkert antal argumenter
Kalder CHR()
uden at sende nogen argumenter returnerer en fejl:
SELECT CHR()
FROM DUAL;
Resultat:
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:
Og at sende det forkerte antal argumenter resulterer i en fejl:
SELECT CHR(1, 2, 3)
FROM DUAL;
Resultat:
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: