sql >> Database teknologi >  >> RDS >> Oracle

CHR() Funktion i Oracle

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:

  1. Oracle Date TO_CHAR('Month DD, YYYY') har ekstra mellemrum i sig

  2. Hvordan bruger man flere WITH-sætninger i en PostgreSQL-forespørgsel?

  3. Indstil det sprog, der bruges til dato- og tidsfunktioner i MariaDB

  4. Problem med Oracle-bindingsvariabler, der ikke bruger indekset korrekt