I Oracle er INITCAP()
funktion returnerer sit argument med det første bogstav i hvert ord med store bogstaver og alle andre bogstaver med små bogstaver.
For særlige sproglige krav til case-konverteringer, kan du prøve NLS_INITCAP()
funktion i stedet for.
Syntaks
Syntaksen ser sådan ud:
INITCAP(char)
Hvor char
kan være af enhver af datatyperne CHAR
, VARCHAR2
, NCHAR
eller NVARCHAR2
.
Eksempel
Her er et simpelt eksempel til at demonstrere:
SELECT INITCAP('ponzi investment house')
FROM DUAL;
Resultat:
INITCAP('PONZIINVESTMENTHOUSE') __________________________________ Ponzi Investment House
Hvad hvis jeg består alle STORE bogstaver?
Hvis du sender alle store bogstaver, ændres resultatet ikke:
SELECT INITCAP('PONZI INVESTMENT HOUSE')
FROM DUAL;
Resultat:
INITCAP('PONZIINVESTMENTHOUSE') __________________________________ Ponzi Investment House
Nul-værdier
Sender null
returnerer null
:
SET NULL 'null';
SELECT INITCAP(null)
FROM DUAL;
Resultat:
INITCAP(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 INITCAP()
uden at sende nogen argumenter returnerer en fejl:
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:
Og at sende det forkerte antal argumenter resulterer i en fejl:
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: