Informazioni sui singoli parametri NLS

Sono disponibili numerosi parametri NLS individuali.

Vedere anche:

Informazioni sulle impostazioni nazionali e sul parametro NLS_LANG

Un'impostazione nazionale è un ambiente linguistico e culturale in cui viene eseguito un sistema o un'applicazione. Il modo più semplice per specificare un'impostazione nazionale per i software Oracle Database è impostare il parametro NLS_LANG.

Il parametro NLS_LANG imposta i valori predefiniti dei parametri NLS_LANGUAGE e NLS_TERRITORY sia per le sessioni del server (ad esempio, l'elaborazione dell'istruzione SQL) che Per l'applicazione client (ad esempio, la visualizzazione di formattazione negli strumenti di Oracle Database). Il parametro NLS_LANG imposta anche il set di caratteri utilizzato dall'applicazione client per dati immessi o visualizzati.

Il valore predefinito di NLS_LANG viene impostato durante l'installazione del database. È possibile utilizzare l'istruzione ALTER SESSION per modificare i valori dei parametri NLS, inclusi quelli impostati da NLS_LANG, per la propria sessione. Tuttavia, soltanto il client può modificare le impostazioni NLS nell'ambiente client.

Vedere anche:

Informazioni sul parametro NLS_LANGUAGE

Questo parametro specifica la lingua predefinita del database.

Specifica: lingua di default del database. Le convenzioni predefinite per:

Valori accettabili: qualsiasi nome di lingua supportata da Oracle. Per una lista, vedere Oracle Database Globalization Support Guide.

Valore predefinito: impostato da NLS_LANG, descritto in "Informazioni sulle impostazioni nazionali e sul parametro NLS_LANG".

Imposta i valori predefiniti di:

Nell'Esempio 7-1 viene illustrato in che modo l'impostazione di NLS_LANGUAGE su ITALIAN e GERMAN influisce sui messaggi e le abbreviazioni dei mesi del server.

Per provare questo esempio in SQL Developer, immettere le istruzioni e le query nel Foglio di lavoro. Per informazioni sul Foglio di lavoro, vedere "Esecuzione di query in SQL Developer". I risultati mostrati nella presente documentazione sono relativi a SQL*Plus; il relativo formato è leggermente diverso in SQL Developer.

NLS_LANGUAGE influisce sui messaggi del server e sulle abbreviazioni del mese dell'esempio 7-1

  1. Notare il valore corrente di NLS_LANGUAGE.

  2. Se il valore nel passo 1 non è ITALIAN, modificarlo:

     ALTER SESSION SET NLS_LANGUAGE=ITALIAN;
    
  3. Eseguire una query su una tabella non esistente:

     SELECT * FROM nonexistent_table;
    

    Risultato:

     SELECT * FROM nonexistent_table
                 *
     ERROR at line 1:
     ORA-00942: tabella o vista inesistente
    
  4. Eseguire la seguente query:

     SELECT LAST_NAME, HIRE_DATE
     FROM EMPLOYEES
     WHERE EMPLOYEE_ID IN (111, 112, 113);
    

    Risultato:

     LAST_NAME                 HIRE_DATE
    
     ------------------------- ---------
     Sciarra                   30-SET-97
     Urman                     07-MAR-98
     Popp                      07-DIC-99
    
     3 rows selected.
    
  5. Modificare il valore di NLS_LANGUAGE in GERMAN:

     ALTER SESSION SET NLS_LANGUAGE=GERMAN;
    
  6. Ripetere l'interrogazione dal passo 3.

    Risultato:

     SELECT * FROM nonexistent_table
                 *
     ERROR at line 1:
     ORA-00942: Tabelle oder View nicht vorhanden
    
  7. Ripetere l'interrogazione dal passo 4.

    Risultato:

     LAST_NAME                 HIRE_DATE
    
     ------------------------- ---------
     Sciarra                   30-SEP-97
     Urman                     07-MRZ-98
     Popp                      07-DEZ-99
    
     3 rows selected.
    
  8. Impostare NLS_LANGUAGE sul valore che aveva al passo 1.

Vedere anche:

Informazioni sul parametro NLS_TERRITORY

Questo parametro specifica le convenzioni predefinite per il formato della data, il formato dell'indicatore orario, il separatore decimale e di gruppo, il simbolo della valuta locale, il simbolo della valuta ISO e il simbolo della doppia valuta.

Specifica: le convenzioni predefinite per quanto segue.

Valori accettabili: qualsiasi nome di area supportato da Oracle. Per una lista, vedere Oracle Database Globalization Support Guide.

Valore predefinito: impostato da NLS_LANG, descritto in "Informazioni sulle impostazioni nazionali e sul parametro NLS_LANG".

Imposta i valori predefiniti di:

Nell'Esempio 7-2 viene illustrato in che modo l'impostazione di NLS_TERRITORY su JAPAN e AMERICA influisce sul simbolo di valuta.

Per provare questo esempio in SQL Developer, immettere le istruzioni e le query nel Foglio di lavoro. Per informazioni sul Foglio di lavoro, vedere "Esecuzione di query in SQL Developer". I risultati mostrati nella presente documentazione sono relativi a SQL*Plus; il relativo formato è leggermente diverso in SQL Developer.

Esempio 7-2 NLS_TERRITORY influisce sul simbolo valuta

  1. Notare il valore corrente di NLS_TERRITORY.

  2. Se il valore nel passo 1 non è JAPAN, modificarlo:

     ALTER SESSION SET NLS_TERRITORY=JAPAN;
    
  3. Eseguire la seguente query:

     SELECT TO_CHAR(SALARY,'L99G999D99') SALARY
     FROM EMPLOYEES
     WHERE EMPLOYEE_ID IN (100, 101, 102);
    

    Risultato:

     SALARY
    
     --------------------
    
             ©24,000.00
    
             ©17,000.00
    
             ©17,000.00
    
     3 rows selected.
    
  4. Modificare il valore di NLS_TERRITORY in AMERICA:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  5. Ripetere l'interrogazione dal passo 3.

    Risultato:

     SALARY
    
     --------------------
    
             $24,000.00
    
             $17,000.00
    
             $17,000.00
    
     3 rows selected.
    
  6. Impostare NLS_TERRITORY sul valore che aveva al passo 1.

Vedere anche:

Informazioni sul parametro NLS_DATE_FORMAT

Questo parametro specifica il formato data predefinito da utilizzare con le funzioni TO_CHAR e TO_DATE.

Specifica: il formato data predefinito da utilizzare con le funzioni TO_CHAR e TO_DATE (descritte in "Uso delle funzione di conversione nelle query").

Valori accettabili: qualsiasi modello di formato Datetime valido. Ad esempio:

NLS_DATE_FORMAT='MM/DD/YYYY'

Per informazioni sui modelli di formati DateTime, vedere Oracle Database SQL Language Reference.

Valore predefinito: impostato da NLS_TERRITORY, descritto in "Informazioni sul parametro NLS_TERRITORY".

Il formato della data predefinito potrebbe non corrispondere alle convenzioni utilizzate in un determinato territorio. Per ottenere le date nei formati localizzati, è possibile utilizzare i formati 'DS' (data abbreviata) e 'DL' (data lunga). Nell'Esempio 7-3 viene illustrato in che modo l'impostazione di NLS_TERRITORY su AMERICA e FRANCE influisce sui formati della data predefinita, breve e lungo. L'Esempio 7-4 modifica il valore di NLS_DATE_FORMAT, sostituendo il valore predefinito impostato da NLS_TERRITORY.

Per provare gli esempi in SQL Developer, immettere le istruzioni e le query nel foglio di lavoro. Per informazioni sul Foglio di lavoro, vedere "Esecuzione di query in SQL Developer". I risultati mostrati nella presente documentazione sono relativi a SQL*Plus; il relativo formato è leggermente diverso in SQL Developer.

Esempio 7-3 NLS_TERRITORY influisce sui formati data

  1. Notare il valore corrente di NLS_TERRITORY.

  2. Se il valore nel passo 1 non è AMERICA, modificarlo:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  3. Eseguire la seguente query:

     SELECT hire_date "Default",
         TO_CHAR(hire_date,'DS') "Short",
         TO_CHAR(hire_date,'DL') "Long"
     FROM employees
     WHERE employee_id IN (111, 112, 113);
    

    Risultato:

     Default    Short      Long
    
     --------- ---------- -----------------------------
    
     30-SEP-05 9/30/2005  Friday, September 30, 2005
    
     07-MAR-98 3/7/2006   Tuesday, March 07, 2006
    
     07-DEC-99 12/7/2007  Friday, December 07, 2007
    
     3 rows selected.
    
  4. Modificare il valore di NLS_TERRITORY in FRANCE:

     ALTER SESSION SET NLS_TERRITORY=FRANCE;
    
  5. Ripetere l'interrogazione dal passo 3.

    Risultato:

     Default  Short      Long
    
     -------- ---------- ---------------------------
    
     30/09/05 30/09/2005 friday 30 september 2005
    
     07/03/06 07/03/2006 tuesday 7 march 2006
    
     07/12/07 07/12/2007 friday 7 december 2007
    
     3 rows selected.
    

    Per ottenere i nomi dei giorni e dei mesi in francese, è necessario impostare NLS_LANGUAGE o NLS_DATE_LANGUAGE su FRENCH prima dell'esecuzione della query.

  6. Impostare NLS_TERRITORY sul valore che aveva al passo 1.

Esempio 7-4 NLS_DATE_FORMAT Sostituisce NLS_TERRITORY

  1. Notare i valori correnti di NLS_TERRITORY e NLS_DATE_FORMAT.

  2. Se il valore di NLS_TERRITORY nel passo 1 non è AMERICA, modificarlo:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  3. Se il valore di NLS_DATE_FORMAT al passo 1 non è 'Day Month ddth', modificarlo:

     ALTER SESSION SET NLS_DATE_FORMAT='Day Month ddth';
    
  4. Eseguire la seguente query (dall'esempio precedente, passo 3):

     SELECT hire_date "Default",
         TO_CHAR(hire_date,'DS') "Short",
         TO_CHAR(hire_date,'DL') "Long"
     FROM employees
     WHERE employee_id IN (111, 112, 113);
    

    Risultato:

     Default                  Short      Long
    
     ------------------------ ---------- -----------------------------
    
     Friday    September 30th 9/30/2005  Tuesday, September 30, 2005
    
     Tuesday   March     07th 3/7/2006   Saturday, March 07, 2006
    
     Friday    December  07th 12/7/2007  Tuesday, December 07, 2007
    
     3 rows selected.
    
  5. Impostare NLS_TERRITORY e NLS_DATE_FORMAT sui valori che avevano al passo 1.

Vedere anche:

Informazioni sul parametro NLS_DATE_LANGUAGE

Questo parametro specifica la lingua per i nomi e le abbreviazioni dei giorni e dei mesi prodotti dalle funzioni SQL TO_CHAR e TO_DATE, il formato data predefinito (impostato da NLS_DATE_FORMAT) e i simboli per gli equivalenti della lingua predefinita di AM, PM, AD e BC.

Specifica: la lingua per nomi e abbreviazioni dei giorni e mesi prodotti da quanto segue.

Valori accettabili: qualsiasi nome di lingua supportata da Oracle. Per una lista, vedere Oracle Database Globalization Support Guide.

Valore predefinito: impostato da NLS_LANGUAGE, descritto in "Informazioni sul parametro NLS_LANGUAGE".

Nell'Esempio 7-5 viene illustrato in che modo l'impostazione di NLS_DATE_LANGUAGE su FRENCH e SWEDISH influisce sulla data del sistema visualizzata.

Per provare questo esempio in SQL Developer, immettere le istruzioni e le query nel Foglio di lavoro. Per informazioni sul Foglio di lavoro, vedere "Esecuzione di query in SQL Developer". I risultati mostrati nella presente documentazione sono relativi a SQL*Plus; il relativo formato è leggermente diverso in SQL Developer.

Esempio 7-5 NLS_DATE_LANGUAGE influisce su SYSDATE visualizzata

  1. Notare il valore corrente di NLS_DATE_LANGUAGE.

  2. Se il valore di NLS_DATE_LANGUAGE nel passo 1 non è FRENCH, modificarlo:

     ALTER SESSION SET NLS_DATE_LANGUAGE=FRENCH;
    
  3. Eseguire la seguente query:

     SELECT TO_CHAR(SYSDATE, 'Day:Dd Month yyyy') "System Date"
     FROM DUAL;
    

    Risultato:

     System Date
    
     --------------------------
    
     Vendredi:28 December   2012
    
  4. Modificare il valore di NLS_DATE_LANGUAGE in SWEDISH:

     ALTER SESSION SET NLS_DATE_LANGUAGE=SWEDISH;
    
  5. Ripetere l'interrogazione dal passo 3.

    Risultato:

     System Date
    
     -------------------------
    
     Fredag :28 December   2012
    
  6. Impostare NLS_DATE_LANGUAGE sul valore che aveva al passo 1.

Vedere anche:

Informazioni sui parametri NLS_TIMESTAMP_FORMAT and NLS_TIMESTAMP_TZ_FORMAT

Questo parametro specifica il formato di data predefinito per l'audiotape TIMESTAMP e TIMESTAMP WITH LOCAL TIME ZONEaudiotapeTIMESTAMP WITH LOCAL TIME ZONEaudiotape.

Specificare: il formato data predefinito per quanto segue.

Valori accettabili: qualsiasi modello di formato Datetime valido. Ad esempio:

NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH:MI:SS.FF'
NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH:MI:SS.FF TZH:TZM'

Per informazioni sui modelli di formati DateTime, vedere Oracle Database SQL Language Reference.

Valore predefinito: impostato da NLS_TERRITORY, descritto in "Informazioni sul parametro NLS_TERRITORY".

Vedere anche:

Informazioni sul parametro NLS_CALENDAR

Questo parametro specifica il sistema di calendario per il database.

Specifica: il sistema calendario per il database.

Valori accettabili: qualsiasi sistema di calendario supportato dalla Oracle. Per una lista, vedere Oracle Database Globalization Support Guide.

Valore predefinito: Gregorian

Nell'Esempio 7-6 viene illustrato in che modo l'impostazione di NLS_CALENDAR su 'English Hijrah' e Gregorian influisce sulla data del sistema visualizzata.

Per provare questo esempio in SQL Developer, immettere le istruzioni e le query nel Foglio di lavoro. Per informazioni sul Foglio di lavoro, vedere "Esecuzione di query in SQL Developer". I risultati mostrati nella presente documentazione sono relativi a SQL*Plus; il relativo formato è leggermente diverso in SQL Developer.

Esempio 7-6 NLS_CALENDAR influisce su SYSDATE visualizzato

  1. Notare il valore corrente di NLS_CALENDAR.
  2. Se il valore di NLS_CALENDAR nel passo 1 non è 'English Hijrah', modificarlo:

     ALTER SESSION SET NLS_CALENDAR='English Hijrah';
    
  3. Eseguire la seguente query:

     SELECT SYSDATE FROM DUAL;
    

    Risultato:

     SYSDATE
    
     -------------------------
    
     17 Safar             1434
    
  4. Modificare il valore di NLS_CALENDAR in 'Gregorian':

     ALTER SESSION SET NLS_CALENDAR='Gregorian';
    
  5. Eseguire la seguente query:

     SELECT SYSDATE FROM DUAL;
    

    Risultato:

     SYSDATE
    
     ---------
    
     31-DEC-12
    
  6. Impostare NLS_CALENDAR sul valore che aveva al passo 1.

Vedere anche:

Informazioni sul parametro NLS_NUMERIC_CHARACTERS

Questo parametro specifica il carattere decimale (che separa i numeri interi e le parti decimali di un numero) e il separatore di gruppo (che separa i gruppi di cifre interi per mostrare, ad esempio, le migliaia e le milioni). Il separatore di gruppi è il carattere restituito dall'elemento del formato numerico G.

Specifica: il carattere decimale (che separa il valore intero e la parte decimale di un numero) e la parte decimale del gruppo (che separa i gruppi di cifre interi per mostrare ad esempio le migliaia e gli milioni). Il separatore di gruppi è il carattere restituito dall'elemento del formato numerico G.

Valori accettabili: due caratteri a singolo byte differenti, ad eccezione di quelli riportati di seguito.

Valore predefinito: impostato da NLS_TERRITORY, descritto in "Informazioni sul parametro NLS_TERRITORY".

In un'istruzione SQL è possibile rappresentare un numero nei modi indicati di seguito.

Nell'Esempio 7-7 viene illustrato in che modo due impostazioni differenti di NLS_NUMERIC_CHARACTERS influiscono sul risultato visualizzato della stessa query.

Per provare questo esempio in SQL Developer, immettere le istruzioni e le query nel Foglio di lavoro. Per informazioni sul Foglio di lavoro, vedere "Esecuzione di query in SQL Developer". I risultati mostrati nella presente documentazione sono relativi a SQL*Plus; il relativo formato è leggermente diverso in SQL Developer.

L'esempio 7-7 NLS_NUMERIC_CHARACTERS influenza il carattere decimale e il separatore dei gruppi

  1. Notare il valore corrente di NLS_NUMERIC_CHARACTERS.
  2. Se il valore di NLS_NUMERIC_CHARACTERS nel passo 1 non è ",." (il carattere decimale è la virgola e la separazione delle migliaia è il punti), modificarlo utilizzando il comando seguente:

     ALTER SESSION SET NLS_NUMERIC_CHARACTERS=",.";
    
  3. Eseguire la seguente query:

     SELECT TO_CHAR(4000, '9G999D99') "Number" FROM DUAL;
    

    Risultato:

     Number
    
     ---------
     4.000,00
    
  4. Modificare il valore di NLS_NUMERIC_CHARACTERS in ",." (il carattere decimale è il punti e la virgola è il separatore dei gruppi):

     ALTER SESSION SET NLS_NUMERIC_CHARACTERS=".,";
    
  5. Eseguire la seguente query:

     SELECT TO_CHAR(4000, '9G999D99') "Number" FROM DUAL;
    

    Risultato:

     Number
    
     ---------
     4,000.00
    
  6. Impostare NLS_NUMERIC_CHARACTERS sul valore che aveva al passo 1.

Vedere anche:

Informazioni sul parametro NLS_CURRENCY

Questo parametro specifica il simbolo di valuta locali (la stringa dei caratteri restituita dall'elemento di formato numerico L).

Specifica: il simbolo di valuta locale (la stringa dei caratteri restituita dall'elemento del formato numerico L).

Valori accettabili: qualsiasi stringa di simboli di valuta valida.

Valore predefinito: impostato da NLS_TERRITORY, descritto in "Informazioni sul parametro NLS_TERRITORY".

L'Esempio 7-8 modifica il valore di NLS_CURRENCY, sostituendo il valore predefinito impostato da NLS_TERRITORY. Per provare questo esempio in SQL Developer, immettere le istruzioni e le query nel Foglio di lavoro. Per informazioni sul Foglio di lavoro, vedere "Esecuzione di query in SQL Developer". I risultati mostrati nella presente documentazione sono relativi a SQL*Plus; il relativo formato è leggermente diverso in SQL Developer.

Esempio 7-8 NLS_CURRENCY sostituisce NLS_TERRITORY

  1. Notare i valori correnti di NLS_TERRITORY e NLS_CURRENCY.
  2. Se il valore di NLS_TERRITORY nel passo 1 non è AMERICA, modificarlo:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  3. Eseguire la seguente query:

     SELECT TO_CHAR(salary, 'L099G999D99') "Salary"
     FROM EMPLOYEES
     WHERE salary > 13000;
    

    Risultato:

     Salary
    
     ---------------------
    
             $024,000.00
    
             $017,000.00
    
             $017,000.00
    
             $014,000.00
    
             $013,500.00
    
  4. Modificare il valore di NLS_CURRENCY in '©':

     ALTER SESSION SET NLS_CURRENCY='©';
    
  5. Eseguire la seguente query:

     SELECT TO_CHAR(salary, 'L099G999D99') "Salary"
     FROM EMPLOYEES
     WHERE salary > 13000;
    

    Risultato:

     Salary
    
     ---------------------
    
             ©024,000.00
    
             ©017,000.00
    
             ©017,000.00
    
             ©014,000.00
    
             ©013,500.00
    
  6. Impostare NLS_TERRITORY e NLS_CURRENCY sui valori che avevano al passo 1.

Vedere anche:

Informazioni sul parametro NLS_ISO_CURRENCY

Questo parametro specifica il simbolo di valuta ISO (la stringa restituita dall'elemento di formato numerico C).

Specifica: il simbolo di valuta ISO (la stringa dei caratteri restituita dall'elemento del formato numerico C).

Valori accettabili: qualsiasi stringa di simboli di valuta valida.

Valore predefinito: impostato da NLS_TERRITORY, descritto in "Informazioni sul parametro NLS_TERRITORY".

I simboli di valuta locali possono essere ambigui, ma i simboli di valuta ISO sono univoci. L'esempio 7-9 mostra che i territori AUSTRALIA e AMERICA hanno lo stesso simbolo della valuta locale, ma simboli di valuta ISO differenti.

Per provare questo esempio in SQL Developer, immettere le istruzioni e le query nel Foglio di lavoro. Per informazioni sul Foglio di lavoro, vedere "Esecuzione di query in SQL Developer". I risultati mostrati nella presente documentazione sono relativi a SQL*Plus; il relativo formato è leggermente diverso in SQL Developer.

Esempio 7-9 NLS_ISO_CURRENCY

  1. Notare i valori correnti di NLS_TERRITORY e NLS_ISO_CURRENCY.
  2. Se il valore di NLS_TERRITORY nel passo 1 non è AUSTRALIA, modificarlo:

     ALTER SESSION SET NLS_TERRITORY=AUSTRALIA;
    
  3. Eseguire la seguente query:

     SELECT TO_CHAR(salary, 'L099G999D99') "Local",
             TO_CHAR(salary, 'C099G999D99') "ISO"
     FROM EMPLOYEES
     WHERE salary > 15000;
    

    Risultato:

     Local                 ISO
    
     --------------------- ------------------
    
             $024,000.00      AUD024,000.00
    
             $017,000.00      AUD017,000.00
    
             $017,000.00      AUD017,000.00
    
  4. Modificare il valore di NLS_TERRITORY in AMERICA:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  5. Eseguire la seguente query:

     SELECT TO_CHAR(salary, 'L099G999D99') "Local",
             TO_CHAR(salary, 'C099G999D99') "ISO"
     FROM EMPLOYEES
     WHERE salary > 15000;
    

    Risultato:

     Local                 ISO
    
     --------------------- ------------------
    
             $024,000.00      USD024,000.00
    
             $017,000.00      USD017,000.00
    
             $017,000.00      USD017,000.00
    
  6. Impostare NLS_TERRITORY e NLS_ISO_CURRENCY sui valori che avevano al passo 1.

Vedere anche:

Informazioni sul parametro NLS_DUAL_CURRENCY

Questo parametro specifica il simbolo di valuta doppia (introdotto per supportare il simbolo dell'euro durante il periodo della transizione all'euro).

Specifica: il simbolo di valuta doppia (introdotto per supportare il simbolo dell'euro durante il periodo della transizione all'euro).

Valori accettabili: qualsiasi stringa di simboli di valuta valida.

Valore predefinito: impostato da NLS_TERRITORY, descritto in "Informazioni sul parametro NLS_TERRITORY".

Vedere anche:

Informazioni sul parametro NLS_SORT

Questo parametro specifica il criterio di ordinamento linguistica (sequenza di raccolta) per le query che hanno la clausola ORDER BY.

Specifica: il metodo di ordinamento linguistico (sequenza di raccolta) per le query con la clausola ORDER BY.

Valori accettabili:

Valore predefinito: impostato da NLS_LANGUAGE, descritto in "Informazioni sul parametro NLS_LANGUAGE".

Nell'Esempio 7-10 viene illustrato in che modo due impostazioni differenti di NLS_SORT influiscono sul risultato visualizzato della stessa query. Le impostazioni sono BINARY e Traditional Spanish (SPANISH_M). Traditional Spanish tratta le lettere ch, ll e ñ come lettere che seguono c, l e n rispettivamente.

Per provare questo esempio in SQL Developer, immettere le istruzioni e le query nel Foglio di lavoro. Per informazioni sul Foglio di lavoro, vedere "Esecuzione di query in SQL Developer". I risultati mostrati nella presente documentazione sono relativi a SQL*Plus; il relativo formato è leggermente diverso in SQL Developer.

Ordinamenti senza distinzione tra maiuscole e minuscole e senza distinzione tra accenti

Le operazioni all'interno di Oracle Database fanno distinzione tra maiuscole e minuscolo e tra gli accenti dei caratteri. Per eseguire un ordinamento senza distinzione tra maiuscole e minuscole, aggiungere _CI al valore del parametro NLS_SORT (ad esempio, BINARY_CI o GERMAN_CI). Per eseguire un ordinamento che sia contestualmente senza distinzione tra maiuscole e minuscole e senza distinzione fra accenti, aggiungere _AI al valore del parametro NLS_SORT (ad esempio, BINARY_AI o FRENCH_M_AI).

NLS_SORT influisce sul criterio di ordinamento linguistico dell'esempio 7-10

  1. Creare una tabella per le parole in spagnolo:

     CREATE TABLE temp (name VARCHAR2(15));
    
  2. Inserire nella tabella alcune parole in spagnolo:

     INSERT INTO temp (name) VALUES ('laguna');
     INSERT INTO temp (name) VALUES ('llama');
     INSERT INTO temp (name) VALUES ('loco');
    
  3. Notare il valore corrente di NLS_SORT.
  4. Se il valore di NLS_SORT nel passo 3 non è BINARY, modificarlo:

     ALTER SESSION SET NLS_SORT=BINARY;
    
  5. Eseguire la seguente query:

     SELECT * FROM temp ORDER BY name;
    

    Risultato:

     NAME
    
     ---------------
     laguna
    
     llama
    
     loco
    
  6. Modificare il valore di NLS_SORT in SPANISH_M (Spagnolo tradizionale):

     ALTER SESSION SET NLS_SORT=SPANISH_M;
    
  7. Ripetere l'interrogazione dal passo 5.

    Risultato:

     NAME
    
     ---------------
     laguna
    
     loco
    
     llama
    
  8. Eliminare la tabella:

     DROP TABLE temp;
    
  9. Impostare NLS_SORT sul valore che aveva al passo 3.

Vedere anche:

Informazioni sul parametro NLS_COMP

Questo parametro specifica il comportamento di confronto dei caratteri delle operazioni SQL.

Specifica: il comportamento di confronto dei personaggi delle operazioni SQL.

Valori accettabili:

Valore predefinito: BINARY

L'Esempio 7-11 mostra che il risultato di una query può dipendere dall'impostazione NLS_COMP.

Per provare questo esempio in SQL Developer, immettere le istruzioni e le query nel Foglio di lavoro. Per informazioni sul Foglio di lavoro, vedere "Esecuzione di query in SQL Developer". I risultati mostrati nella presente documentazione sono relativi a SQL*Plus; il relativo formato è leggermente diverso in SQL Developer.

NLS_COMP influenza il confronto dei caratteri SQL nell'esempio 7-11

  1. Notare i valori correnti di NLS_SORT e NLS_COMP.
  2. Se nel passo 1 i valori di NLS_SORT e NLS_COMP non sono rispettivamente SPANISH_M (Traditional Spanish) e BINARY, modificarli:

     ALTER SESSION SET NLS_SORT=SPANISH_M NLS_COMP=BINARY;
    
  3. Eseguire la seguente query:

     SELECT LAST_NAME FROM EMPLOYEES
     WHERE LAST_NAME LIKE 'C%';
    

    Risultato:

     LAST_NAME
    
     -------------------------
     Cabrio
     Cambrault
     Cambrault
     Chen
     Chung
     Colmenares
    
     6 rows selected
    
  4. Modificare il valore di NLS_COMP in LINGUISTIC:

     ALTER SESSION SET NLS_COMP=LINGUISTIC;
    
  5. Ripetere l'interrogazione dal passo 3.

    Risultato:

     LAST_NAME
    
     -------------------------
     Cabrio
     Cambrault
     Cambrault
     Colmenares
    
     4 rows selected
    

    Questa volta Chen e Chung non vengono restituiti perché Traditional Spanish considera ch come un singolo carattere che segue c.

  6. Impostare NLS_SORT e NLS_COMP sui valori che avevano al passo 1.

Vedere anche:

Informazioni sul parametro NLS_LENGTH_SEMANTICS

Questo parametro specifica la semantica della longitudine per i tipi di dati carattere CHAR, VARCHAR2 e LONG, ossia indica se tali colonne sono specificate in byte o in caratteri. (applicabile solo alle colonne dichiarate dopo l'impostazione del parametro).

Specifica: la semantica della lunghezza per la colonna dei tipi di dati carattere CHAR, VARCHAR2 e LONG, ossia indica se tali colonne sono specificate in byte o in caratteri. (applicabile solo alle colonne dichiarate dopo l'impostazione del parametro).

Valori accettabili:

Valore predefinito: BYTE

Per provare questo esempio in SQL Developer, immettere le istruzioni e le query nel Foglio di lavoro. Per informazioni sul Foglio di lavoro, vedere "Esecuzione di query in SQL Developer". I risultati mostrati nella presente documentazione sono relativi a SQL*Plus; il relativo formato è leggermente diverso in SQL Developer.

NLS_LENGTH_SEMANTICS influisce sulla memorizzazione della Colonna VARCHAR2 dell'esempio 7-12

  1. Notare i valori correnti di NLS_LENGTH_SEMANTICS.
  2. Se il valore di NLS_LENGTH_SEMANTICS nel passo 1 non è BYTE, modificarlo:

     ALTER SESSION SET NLS_LENGTH_SEMANTICS=BYTE;
    
  3. Creare una tabella con una colonna VARCHAR2:

     CREATE TABLE SEMANTICS_BYTE(SOME_DATA VARCHAR2(20));
    
  4. Fare clic sulla scheda Connessioni.

  5. Nel frame Connessioni espandere hr_conn.

  6. Nella lista dei tipi di oggetto schema espandere Tabelle.

  7. Nella lista di tabelle selezionare SEMANTICS_BYTE.

    A destra del frame Connessioni, il riquadro Colonne mostra che per Nome di colonna SOME_DATA il tipo di dati è VARCHAR2(20 BYTE).

  8. Modificare il valore di NLS_LENGTH_SEMANTICS in CHAR:

     ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR;
    
  9. Creare un'altra tabella con una colonna VARCHAR2:

     CREATE TABLE SEMANTICS_CHAR(SOME_DATA VARCHAR2(20));
    
  10. Nel riquadro Connessioni, fare clic sull'icona Aggiorna.

    La lista di tabelle include ora SEMANTICS_CHAR.

  11. Selezionare SEMANTICS_CHAR.

    Il riquadro Colonne mostra che per il nome di colonna SOME_DATA il tipo di dati è VARCHAR2(20 CHAR).

  12. Selezionare nuovamente SEMANTICS_BYTE.

    Il riquadro Colonne mostra che per il nome di colonna SOME_DATA il tipo di dati è ancora VARCHAR2(20 BYTE).

  13. Impostare il valore di NLS_LENGTH_SEMANTICS sul valore che aveva al passo 1.

Vedere anche: