sql >> Databasteknik >  >> RDS >> Oracle

INITCAP() Funktion i Oracle

I Oracle, INITCAP() funktion returnerar sitt argument med den första bokstaven i varje ord med versaler och alla andra bokstäver med gemener.

För särskilda språkliga krav för fallkonverteringar, kanske du vill prova NLS_INITCAP() funktion istället.

Syntax

Syntaxen ser ut så här:

INITCAP(char)

Där char kan vara av vilken som helst av datatyperna CHAR , VARCHAR2 , NCHAR , eller NVARCHAR2 .

Exempel

Här är ett enkelt exempel att visa:

SELECT INITCAP('ponzi investment house')
FROM DUAL;

Resultat:

   INITCAP('PONZIINVESTMENTHOUSE') 
__________________________________ 
Ponzi Investment House            

Vad händer om jag klarar alla STORA bokstäver?

Att skicka alla stora bokstäver ändrar inte resultatet:

SELECT INITCAP('PONZI INVESTMENT HOUSE')
FROM DUAL;

Resultat:

   INITCAP('PONZIINVESTMENTHOUSE') 
__________________________________ 
Ponzi Investment House            

Nullvärden

Skickar null returnerar null :

SET NULL 'null';

SELECT INITCAP(null)
FROM DUAL;

Resultat:

   INITCAP(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 INITCAP() utan att skicka några argument returnerar ett fel:

SELECT INITCAP()
FROM DUAL;

Resultat:

Error starting at line : 1 in command -
SELECT INITCAP()
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:

Och att skicka fel antal argument resulterar i ett fel:

SELECT INITCAP('Gosh', 'Dang', 'Investments')
FROM DUAL;

Resultat:

Error starting at line : 1 in command -
SELECT INITCAP('Gosh', 'Dang', 'Investments')
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. Får fel - ORA-01858:ett icke-numeriskt tecken hittades där ett numeriskt tecken förväntades

  2. Matcha en fras som slutar på ett prefix med fulltextsökning

  3. Row Goals, del 3:Anti Joins

  4. Få en kolumn från .sqlite som innehåller flera tabeller med flera kolumner