In Oracle, il NLS_UPPER()
la funzione restituisce il suo argomento con tutte le lettere maiuscole.
È simile a UPPER()
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_UPPER(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_UPPER('coffee time') AS Result
FROM DUAL;
Risultato:
RESULT ______________ COFFEE TIME
Lo stesso vale quando l'argomento usa maiuscole e minuscole:
SELECT NLS_UPPER('Coffee Time') AS Result
FROM DUAL;
Risultato:
RESULT ______________ COFFEE TIME
E se l'argomento è già maiuscolo, il risultato è lo stesso dell'input:
SELECT NLS_UPPER('COFFEE TIME') AS Result
FROM DUAL;
Risultato:
RESULT ______________ COFFEE TIME
Specifica una confronto
Ecco un esempio che dimostra come specificare una confronto può alterare i risultati:
SELECT
NLS_UPPER('fasilə') AS r1,
NLS_UPPER('fasilə', 'NLS_SORT = XAZERBAIJANI') AS r2
FROM DUAL;
Risultato:
R1 R2 _________ _________ FASILƏ FASİLƏ
Si noti che la seconda colonna utilizza una I
maiuscola puntata 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_UPPER('fasilə', '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_UPPER(null, 'NLS_SORT = XAZERBAIJANI') AS r1,
NLS_UPPER('fasilə', null) AS r2,
NLS_UPPER(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_UPPER()
senza passare alcun argomento restituisce un errore:
SELECT NLS_UPPER()
FROM DUAL;
Risultato:
Error starting at line : 1 in command - SELECT NLS_UPPER() 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_UPPER('coffee', 'NLS_SORT = XAZERBAIJANI', 'time')
FROM DUAL;
Risultato:
Error starting at line : 1 in command - SELECT NLS_UPPER('coffee', 'NLS_SORT = XAZERBAIJANI', 'time') FROM DUAL Error at Command Line : 1 Column : 55 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: