Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Funkcja NLS_LOWER() w Oracle

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:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego nie ma danych wyjściowych po zakończeniu bloku PLSQL Anonymous?

  2. Górne n procent górne n%

  3. Jak wybrać i zoptymalizować indeksy oracle?

  4. Tworzenie lub symulacja dwuwymiarowych tablic w PL/SQL

  5. Funkcja TANH() w Oracle