W Oracle INITCAP()
funkcja zwraca swój argument z pierwszą literą każdego słowa zapisaną wielką literą, a wszystkimi innymi literami małymi.
W przypadku specjalnych wymagań językowych dotyczących konwersji wielkości liter, możesz wypróbować NLS_INITCAP()
zamiast tego.
Składnia
Składnia wygląda tak:
INITCAP(char)
Gdzie char
może być dowolnego typu danych CHAR
, VARCHAR2
, NCHAR
lub NVARCHAR2
.
Przykład
Oto prosty przykład do zademonstrowania:
SELECT INITCAP('ponzi investment house')
FROM DUAL;
Wynik:
INITCAP('PONZIINVESTMENTHOUSE') __________________________________ Ponzi Investment House
Co się stanie, jeśli przekażę wszystkie WIELKIE litery?
Przekazanie wszystkich wielkich liter nie zmienia wyniku:
SELECT INITCAP('PONZI INVESTMENT HOUSE')
FROM DUAL;
Wynik:
INITCAP('PONZIINVESTMENTHOUSE') __________________________________ Ponzi Investment House
Wartości puste
Przekazywanie null
zwraca null
:
SET NULL 'null';
SELECT INITCAP(null)
FROM DUAL;
Wynik:
INITCAP(NULL) ________________ null
Domyślnie SQLcl i SQL*Plus zwracają spację, gdy null
występuje w wyniku polecenia SQL SELECT
oświadczenie.
Możesz jednak użyć SET NULL
aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null
należy zwrócić.
Nieprawidłowa liczba argumentów
Wywołanie INITCAP()
bez przekazywania żadnych argumentów zwraca błąd:
SELECT INITCAP()
FROM DUAL;
Wynik:
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:
A przekazanie niewłaściwej liczby argumentów skutkuje błędem:
SELECT INITCAP('Gosh', 'Dang', 'Investments')
FROM DUAL;
Wynik:
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: