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 AI 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 AI 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 AI 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 AI 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 AI 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 AI 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 AI 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 AI Database Globalization Support Guide.

Valore predefinito: Gregorian Esempio 7-6 mostra in che modo l'impostazione di NLS_CALENDAR su 'English Hijrah' e Gregorian influisce sulla data di 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:

    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 in Oracle AI 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 la 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 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: