sql >> Databasteknik >  >> RDS >> Oracle

CHR() Funktion i Oracle

I Oracle, CHR() funktion returnerar ett tecken baserat på kodvärdena som tillhandahålls som ett argument.

Mer specifikt returnerar det tecknet som har den binära motsvarigheten till dess argument som en VARCHAR2 värde i antingen databasens teckenuppsättning eller, om du anger USING NCHAR_CS , den nationella teckenuppsättningen.

Syntax

Syntaxen ser ut så här:

CHR(n [ USING NCHAR_CS ])

Där n är ett NUMBER värde, eller något värde som implicit kan konverteras till NUMBER .

USING NCHAR_CS argument är ett valfritt argument som låter dig specificera den nationella teckenuppsättningen.

Exempel

Här är ett enkelt exempel att visa:

SELECT CHR(65)
FROM DUAL;

Resultat:

   CHR(65) 
__________ 
A         

Här angav jag ett nummer och CHR() returnerade motsvarande tecken. I det här fallet heltal 65 mappar till den stora bokstaven A .

Skaftkänslighet

Här är ett exempel som skiljer en stor bokstav från dess motsvarighet:

SELECT 
    CHR(72),
    CHR(104)
FROM DUAL;

Resultat:

   CHR(72)    CHR(104) 
__________ ___________ 
H          h           

Returnera en sträng med flera tecken

För att skapa en flerteckensträng kan vi sammanfoga flera CHR() funktioner:

Exempel:

SELECT CHR(65) || CHR(77)
FROM DUAL;

Resultat:

   CHR(65)||CHR(77) 
___________________ 
AM                  

NCHAR_CS Argument

Här är ett exempel på att skicka det (valfria) andra argumentet:

SELECT CHR (257 USING NCHAR_CS)
FROM DUAL;

Resultat:

   CHR(257USINGNCHAR_CS) 
________________________ 
ā                       

Detta är samma sak som att använda NCHR() funktion.

Nullvärden

Skickar null returnerar null :

SET NULL 'null';

SELECT CHR(null)
FROM DUAL;

Resultat:

   CHR(NULL) 
____________ 
null        

Som standard returnerar SQLcl och SQL*Plus ett tomt utrymme när null uppstår som ett resultat av en SQL SELECT påstående.

Du kan dock använda SET NULL för att ange en annan sträng som ska returneras. Här specificerade jag att strängen null bör returneras.

Inkorrekt antal argument

Anropar CHR() utan att skicka några argument returnerar ett fel:

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:

Och att skicka fel antal argument resulterar i ett fel:

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. CBO Statistics White Paper

  2. Lagrad procedur för att få indexstatus i alla databaser

  3. Returnera rader som innehåller alfanumeriska tecken i SQLite

  4. Hur Access 2019 fungerar och hur du arbetar med det