Oracle
 sql >> Database >  >> RDS >> Oracle

NLS_LOWER() Funzione in Oracle

In Oracle, il NLS_LOWER() la funzione restituisce il suo argomento con tutte le lettere in minuscolo.

È simile a LOWER() funzione, tranne per il fatto che accetta un secondo argomento che consente di specificare le regole di confronto. La raccolta gestisce requisiti linguistici speciali per le conversioni di casi.

Sintassi

La sintassi è questa:

NLS_LOWER(char [, 'nlsparam' ])

Dove entrambi char e 'nlsparam' può essere di qualsiasi tipo di dati CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB o NCLOB .

Il 'nlsparam' argomento può avere la forma seguente:

'NLS_SORT = sort'

Dove sort è una raccolta denominata.

Se ometti questo argomento, viene utilizzato il confronto determinato della funzione.

Esempio

Ecco un semplice esempio da dimostrare:

SELECT NLS_LOWER('HOMER SYMPTOM') AS Result
FROM DUAL;

Risultato:

          RESULT 
________________ 
homer symptom   

Lo stesso vale quando l'argomento usa maiuscole e minuscole:

SELECT NLS_LOWER('Homer Symptom') AS Result
FROM DUAL;

Risultato:

          RESULT 
________________ 
homer symptom   

E se l'argomento è già minuscolo, il risultato è lo stesso dell'input:

SELECT NLS_LOWER('homer symptom') AS Result
FROM DUAL;

Risultato:

          RESULT 
________________ 
homer symptom   

Specifica una confronto

Ecco un esempio che dimostra come la specifica di una confronto può alterare i risultati:

SELECT 
    NLS_LOWER('BALIQ') AS r1,
    NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI') AS r2
FROM DUAL;

Risultato:

      R1       R2 
________ ________ 
baliq    balıq   

Si noti che la seconda colonna utilizza un i minuscolo senza punto carattere, che aderisce al sistema di scrittura azerbaigiano.

Nota che NLS_SORT sovrascrive le regole di confronto del primo argomento solo al momento dell'esecuzione. Pertanto, la seguente istruzione restituisce le regole di confronto del primo argomento, non del secondo:

SELECT
    COLLATION(NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI')) AS Collation
FROM DUAL;

Risultato:

        COLLATION 
_________________ 
USING_NLS_COMP   

L'argomento delle collazioni può essere piuttosto complesso. Consulta l'Appendice C nella Guida al supporto per la globalizzazione del database Oracle per le regole di determinazione delle regole di confronto e le regole di derivazione delle regole di confronto per questa funzione.

Valori Nulli

Passaggio null restituisce null :

SELECT
    NLS_LOWER(null, 'NLS_SORT = XAZERBAIJANI') AS r1,
    NLS_LOWER('BALIQ', null) AS r2,
    NLS_LOWER(null, null) AS r3
FROM DUAL;

Risultato:

     R1      R2      R3 
_______ _______ _______ 
null    null    null   

Per impostazione predefinita, SQLcl e SQL*Plus restituiscono uno spazio vuoto ogni volta che null si verifica come risultato di un SQL SELECT dichiarazione.

Tuttavia, puoi utilizzare SET NULL per specificare una stringa diversa da restituire. Qui ho specificato che la stringa null deve essere restituito.

Conteggio argomenti errato

Chiamando NLS_LOWER() senza passare alcun argomento restituisce un errore:

SELECT NLS_LOWER()
FROM DUAL;

Risultato:

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:

E il passaggio di troppi argomenti genera un errore:

SELECT NLS_LOWER('Homer', 'NLS_SORT = XAZERBAIJANI', 'Symptom')
FROM DUAL;

Risultato:

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: