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: