W Oracle NLS_LOWER() funkcja zwraca swój argument ze wszystkimi literami małymi.
Jest podobny do LOWER() funkcję, z tym wyjątkiem, że przyjmuje drugi argument, który pozwala określić sortowanie. Sortowanie obsługuje specjalne wymagania językowe dotyczące konwersji przypadków.
Składnia
Składnia wygląda tak:
NLS_LOWER(char [, 'nlsparam' ])
Gdzie oba char i 'nlsparam' może być dowolnego typu danych CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB lub NCLOB .
'nlsparam' argument może mieć następującą postać:
'NLS_SORT = sort'
Gdzie sort to nazwane zestawienie.
Jeśli pominiesz ten argument, używane jest określone sortowanie funkcji.
Przykład
Oto prosty przykład do zademonstrowania:
SELECT NLS_LOWER('HOMER SYMPTOM') AS Result
FROM DUAL; Wynik:
RESULT ________________ homer symptom
To samo dotyczy przypadku, gdy w argumencie zastosowano wielkość liter:
SELECT NLS_LOWER('Homer Symptom') AS Result
FROM DUAL; Wynik:
RESULT ________________ homer symptom
A jeśli argument jest już małymi literami, wynik jest taki sam jak dane wejściowe:
SELECT NLS_LOWER('homer symptom') AS Result
FROM DUAL; Wynik:
RESULT ________________ homer symptom
Określ sortowanie
Oto przykład, który pokazuje, jak określenie sortowania może zmienić wyniki:
SELECT
NLS_LOWER('BALIQ') AS r1,
NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI') AS r2
FROM DUAL; Wynik:
R1 R2 ________ ________ baliq balıq
Zauważ, że druga kolumna używa małych liter bez kropek i charakter, który jest zgodny z systemem pisma Azerbejdżanu.
Zwróć uwagę, że NLS_SORT przesłania sortowanie pierwszego argumentu tylko w momencie wykonania. Dlatego następująca instrukcja zwraca sortowanie pierwszego argumentu, a nie drugiego:
SELECT
COLLATION(NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI')) AS Collation
FROM DUAL; Wynik:
COLLATION _________________ USING_NLS_COMP
Temat zestawień może być dość złożony. Zobacz Dodatek C w przewodniku Oracle Database Globalization Support Guide, aby zapoznać się z regułami określania sortowania i regułami wyprowadzania sortowania dla tej funkcji.
Wartości puste
Przekazywanie null zwraca null :
SELECT
NLS_LOWER(null, 'NLS_SORT = XAZERBAIJANI') AS r1,
NLS_LOWER('BALIQ', null) AS r2,
NLS_LOWER(null, null) AS r3
FROM DUAL; Wynik:
R1 R2 R3 _______ _______ _______ null 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 NLS_LOWER() bez przekazywania żadnych argumentów zwraca błąd:
SELECT NLS_LOWER()
FROM DUAL; Wynik:
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 przekazanie zbyt wielu argumentów skutkuje błędem:
SELECT NLS_LOWER('Homer', 'NLS_SORT = XAZERBAIJANI', 'Symptom')
FROM DUAL; Wynik:
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: