V Oracle, NLS_LOWER()
funkce vrací svůj argument se všemi písmeny malými.
Je to podobné jako LOWER()
funkce, kromě toho, že přijímá druhý argument, který vám umožňuje určit řazení. Porovnání řeší speciální lingvistické požadavky na převody velkých a malých písmen.
Syntaxe
Syntaxe vypadá takto:
NLS_LOWER(char [, 'nlsparam' ])
Kde oba char
a 'nlsparam'
může být libovolného datového typu CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
nebo NCLOB
.
'nlsparam'
argument může mít následující tvar:
'NLS_SORT = sort'
Kde sort
je pojmenovaná kolace.
Pokud tento argument vynecháte, použije se určené řazení funkce.
Příklad
Zde je jednoduchý příklad k demonstraci:
SELECT NLS_LOWER('HOMER SYMPTOM') AS Result
FROM DUAL;
Výsledek:
RESULT ________________ homer symptom
Totéž platí, když argument používá smíšená velká a malá písmena:
SELECT NLS_LOWER('Homer Symptom') AS Result
FROM DUAL;
Výsledek:
RESULT ________________ homer symptom
A pokud je argument již malá písmena, pak je výsledek stejný jako vstup:
SELECT NLS_LOWER('homer symptom') AS Result
FROM DUAL;
Výsledek:
RESULT ________________ homer symptom
Zadejte řazení
Zde je příklad, který ukazuje, jak může zadání řazení změnit výsledky:
SELECT
NLS_LOWER('BALIQ') AS r1,
NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI') AS r2
FROM DUAL;
Výsledek:
R1 R2 ________ ________ baliq balıq
Všimněte si, že druhý sloupec používá malá písmena i
bez teček znak, který dodržuje ázerbájdžánský systém psaní.
Všimněte si, že NLS_SORT
přepíše řazení prvního argumentu pouze v době provádění. Proto následující příkaz vrátí řazení prvního argumentu, nikoli druhého:
SELECT
COLLATION(NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI')) AS Collation
FROM DUAL;
Výsledek:
COLLATION _________________ USING_NLS_COMP
Předmět porovnávání může být poměrně složitý. Pravidla určování řazení a pravidla odvozování řazení pro tuto funkci naleznete v příloze C příručky Oracle Database Globalization Support Guide.
Nulové hodnoty
Předávání null
vrátí null
:
SELECT
NLS_LOWER(null, 'NLS_SORT = XAZERBAIJANI') AS r1,
NLS_LOWER('BALIQ', null) AS r2,
NLS_LOWER(null, null) AS r3
FROM DUAL;
Výsledek:
R1 R2 R3 _______ _______ _______ null null null
Ve výchozím nastavení vrátí SQLcl a SQL*Plus prázdné místo vždy, když null
dochází v důsledku SQL SELECT
prohlášení.
Můžete však použít SET NULL
určit jiný řetězec, který má být vrácen. Zde jsem uvedl, že řetězec null
by měl být vrácen.
Nesprávný počet argumentů
Volání NLS_LOWER()
bez předání jakýchkoli argumentů vrátí chybu:
SELECT NLS_LOWER()
FROM DUAL;
Výsledek:
Error starting at line : 1 in command - SELECT NLS_LOWER() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function" *Cause: *Action:
A předání příliš mnoha argumentů vede k chybě:
SELECT NLS_LOWER('Homer', 'NLS_SORT = XAZERBAIJANI', 'Symptom')
FROM DUAL;
Výsledek:
Error starting at line : 1 in command - SELECT NLS_LOWER('Homer', 'NLS_SORT = XAZERBAIJANI', 'Symptom') FROM DUAL Error at Command Line : 1 Column : 54 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: