В Oracle, INITCAP()
функцията връща своя аргумент с първата буква на всяка дума с главни букви и всички останали букви с малки.
За специални езикови изисквания за преобразуване на главни и главни букви, може да искате да опитате NLS_INITCAP()
функция вместо това.
Синтаксис
Синтаксисът е така:
INITCAP(char)
Където char
може да бъде от всеки от типовете данни CHAR
, VARCHAR2
, NCHAR
или NVARCHAR2
.
Пример
Ето един прост пример за демонстрация:
SELECT INITCAP('ponzi investment house')
FROM DUAL;
Резултат:
INITCAP('PONZIINVESTMENTHOUSE') __________________________________ Ponzi Investment House
Ами ако предам всички ГЛАВНИ букви?
Предаването на всички главни букви не променя резултата:
SELECT INITCAP('PONZI INVESTMENT HOUSE')
FROM DUAL;
Резултат:
INITCAP('PONZIINVESTMENTHOUSE') __________________________________ Ponzi Investment House
Нулеви стойности
Предаването на null
връща null
:
SET NULL 'null';
SELECT INITCAP(null)
FROM DUAL;
Резултат:
INITCAP(NULL) ________________ null
По подразбиране SQLcl и SQL*Plus връщат празно пространство всеки път, когато null
възниква в резултат на SQL SELECT
изявление.
Можете обаче да използвате SET NULL
за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null
трябва да бъдат върнати.
Неправилен брой аргументи
Извикване на INITCAP()
без подаване на аргументи връща грешка:
SELECT INITCAP()
FROM DUAL;
Резултат:
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:
И предаването на грешен брой аргументи води до грешка:
SELECT INITCAP('Gosh', 'Dang', 'Investments')
FROM DUAL;
Резултат:
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: