Acerca de los Parámetros NLS Individuales

Hay disponibles muchos parámetros NLS individuales.

Consulte además:

Acerca de la Configuración Regional y el Parámetro NLS_LANG

Una configuración regional es un entorno lingüístico y cultural en el que se ejecuta un sistema o aplicación. La forma más sencilla de especificar una Configuración Regional para Software de Oracle Database es definir el parámetro NLS_LANG.

El parámetro NLS_LANG define los valores por defecto de los parámetros NLS_LANGUAGE y NLS_TERRITORY para la sesión de servidor (por ejemplo, proceso de sentencia SQL) y la aplicación cliente (por ejemplo, mostrar formato en herramientas de la base de datos Oracle Database). El parámetro NLS_LANG también define el juego de caracteres que la aplicación cliente utiliza para datos introducidos o mostrados.

El valor por defecto de NLS_LANG se define durante las instalaciones de la base de datos. Puede utilizar la sentencia ALTER SESSION para cambiar los valores de las variables NLS, incluidos los definidos con NLS_LANG, para la sesión. Sin embargo, sólo el cliente puede cambiar los valores de NLS en el entorno de cliente.

Consulte además:

Acerca del Parámetro NLS_LANGUAGE

Este parámetro especifica el idioma por defecto de la base de datos.

Especifica: idioma por defecto de la base datos. Convenciones por defecto para:

Valores aceptables: Cualquier nombre de idioma que Oracle soporte. Para obtener una lista, consulte Guía de soporte de globalización de Oracle Database.

Valor por Defecto: Definido por NLS_LANG, descrito en "Acerca de las Configuraciones Regional y el Parámetro NLS_LANG".

Define los valores por defecto de:

En el ejemplo 7-1 se muestra cómo la definición de NLS_LANGUAGE en ITALIAN y GERMAN afecta a mensajes del servidor y abreviaturas de meses.

Para probar este ejemplo en SQL Developer, introduzca las sentencias y consultas en la hoja de trabajo. Para obtener información sobre la hoja de trabajo, consulte "Ejecución de Consultas en SQL Developer". Los resultados mostrados aquí son de SQL*Plus; su formato es un poco diferente en SQL Developer.

Ejemplo 7-1 NLS_LANGUAGE Afecta a los Mensajes del Servidor y abreviaturas de Meses

  1. Anote el valor actual de NLS_LANGUAGE.

  2. Si el valor del paso 1 no es ITALIAN, cámbielo:

     ALTER SESSION SET NLS_LANGUAGE=ITALIAN;
    
  3. Consulte una tabla inexistente:

     SELECT * FROM nonexistent_table;
    

    Resultado:

     SELECT * FROM nonexistent_table
                 *
     ERROR at line 1:
     ORA-00942: tabella o vista inesistente
    
  4. Ejecute la siguiente consulta:

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

    Resultado:

     LAST_NAME                 HIRE_DATE
    
     ------------------------- ---------
     Sciarra                   30-SET-97
     Urman                     07-MAR-98
     Popp                      07-DIC-99
    
     3 rows selected.
    
  5. Cambie el valor de NLS_LANGUAGE a GERMAN:

     ALTER SESSION SET NLS_LANGUAGE=GERMAN;
    
  6. Repita la consulta desde el paso 3.

    Resultado:

     SELECT * FROM nonexistent_table
                 *
     ERROR at line 1:
     ORA-00942: Tabelle oder View nicht vorhanden
    
  7. Repita la consulta desde el paso 4.

    Resultado:

     LAST_NAME                 HIRE_DATE
    
     ------------------------- ---------
     Sciarra                   30-SEP-97
     Urman                     07-MRZ-98
     Popp                      07-DEZ-99
    
     3 rows selected.
    
  8. Defina NLS_LANGUAGE en los valores que tenía en los pasos 1.

Consulte además:

Acerca del Parámetro NLS_TERRITORY

Este parámetro especifica las convenciones por defecto para el formato de fecha, el formato de registro de hora, el separador decimal y de grupo, el símbolo de moneda local, el símbolo de moneda ISO y el símbolo de moneda doble.

Especifica las convenciones por defecto para:

Valores aceptables: Cualquier nombre de territorio que Oracle soporte. Para obtener una lista, consulte Guía de soporte de globalización de Oracle Database.

Valor por Defecto: Definido por NLS_LANG, descrito en "Acerca de las Configuraciones Regional y el Parámetro NLS_LANG".

Define los valores por defecto de:

El Ejemplo 7-2 muestra cómo la definición de NLS_TERRITORY en JAPAN y AMERICA afecta a los símbolos de divisa.

Para probar este ejemplo en SQL Developer, introduzca las sentencias y consultas en la hoja de trabajo. Para obtener información sobre la hoja de trabajo, consulte "Ejecución de Consultas en SQL Developer". Los resultados mostrados aquí son de SQL*Plus; su formato es un poco diferente en SQL Developer.

Ejemplo 7-2 NLS_TERRITORY afecta al símbolo de moneda

  1. Anote el valor actual de NLS_TERRITORY.

  2. Si el valor del paso 1 no es JAPAN, cámbielo:

     ALTER SESSION SET NLS_TERRITORY=JAPAN;
    
  3. Ejecute la siguiente consulta:

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

    Resultado:

     SALARY
    
     --------------------
    
             ©24,000.00
    
             ©17,000.00
    
             ©17,000.00
    
     3 rows selected.
    
  4. Cambie el valor de NLS_TERRITORY a AMERICA:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  5. Repita la consulta desde el paso 3.

    Resultado:

     SALARY
    
     --------------------
    
             $24,000.00
    
             $17,000.00
    
             $17,000.00
    
     3 rows selected.
    
  6. Defina NLS_TERRITORY en El Valor que Tenía en El Paso 1

Consulte además:

Acerca del Parámetro NLS_DATE_FORMAT

Este parámetro especifica el formato de fecha por defecto que se utilizará con las funciones TO_CHAR y TO_DATE.

Especifica el formato de fecha por defecto que se utiliza con las funciones TO_CHAR y TO_DATE (que se introducen en "Uso de Funciones de Conversión en Consultas").

Valores aceptables: Cualquier modelo con formato de fecha/hora válido. Por ejemplo:

NLS_DATE_FORMAT='MM/DD/YYYY'

Para obtener información sobre los modelos de formato de fecha y hora, consulte Referencia de lenguaje SQL de Oracle Database.

Valor por Defecto: Definido por NLS_TERRITORY, descrito en "Acerca del Parámetro NLS_TERRITORY".

Puede que el formato de fecha por defecto no se corresponda con la convención utilizada en un territorio determinado. Para obtener fechas con formatos localizados, puede utilizar los formatos 'DS' (fecha corta) y 'DL' (fecha largo). En el Ejemplo 7-3 se muestra cómo la definición de NLS_TERRITORY en AMERICA y FRANCE afecta a los formatos por defecto, abreviada y larga. En el ejemplo 7-4 se cambia el valor de NLS_DATE_FORMAT, sustituyendo el valor predeterminado definido por NLS_TERRITORY.

Para probar los ejemplos en SQL Developer, introduzca las sentencias y consultas en la hoja de trabajo. Para obtener información sobre la hoja de trabajo, consulte "Ejecución de Consultas en SQL Developer". Los resultados mostrados aquí son de SQL*Plus; su formato es un poco diferente en SQL Developer.

Ejemplo 7-3 NLS_TERRITORY afecta a los formatos de fecha

  1. Anote el valor actual de NLS_TERRITORY.

  2. Si el valor del paso 1 no es AMERICA, cámbielo:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  3. Ejecute la siguiente consulta:

     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);
    

    Resultado:

     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. Cambie el valor de NLS_TERRITORY a FRANCE:

     ALTER SESSION SET NLS_TERRITORY=FRANCE;
    
  5. Repita la consulta desde el paso 3.

    Resultado:

     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.
    

    (Para obtener los nombres de los días y meses en francés, debe definir NLS_LANGUAGE o NLS_DATE_LANGUAGE en FRENCH antes de ejecutar la consulta).

  6. Defina NLS_TERRITORY en los valores que tenía en la etapa 1.

Ejemplo 7-4 NLS_DATE_FORMAT sustituye a NLS_TERRITORY

  1. Anote los valores actuales de NLS_TERRITORY y NLS_DATE_FORMAT.

  2. Si el valor de NLS_TERRITORY del paso 1 no es AMERICA, cámbielo:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  3. Si el valor de NLS_DATE_FORMAT del paso 1 no es 'Day Month ddth', cámbielo:

     ALTER SESSION SET NLS_DATE_FORMAT='Day Month ddth';
    
  4. Ejecute esta consulta (a partir del ejemplo anterior, paso 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);
    

    Resultado:

     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. Defina NLS_TERRITORY y NLS_DATE_FORMAT en los valores que tenían en la etapa 1.

Consulte además:

Acerca del Parámetro NLS_DATE_LANGUAGE

Este parámetro especifica el idioma para los nombres y las abreviaturas de días y meses producidos por: las funciones SQL TO_CHAR y TO_DATE, el formato de fecha por defecto (definido por NLS_DATE_FORMAT) y los símbolos para los equivalentes de idioma por defecto de AM, PM, AD y BC.

Especifica: el idioma para nombres y abreviaturas de días y meses producidos por:

Valores aceptables: Cualquier nombre de idioma que Oracle soporte. Para obtener una lista, consulte Guía de soporte de globalización de Oracle Database.

Valor por Defecto: Definido por NLS_LANGUAGE, descrito en "Acerca del Parámetro NLS_LANGUAGE".

En el Ejemplo 7-5 se muestra cómo la definición de NLS_DATE_LANGUAGE en FRENCH y SWEDISH afecta a la fecha de sistema visualizada.

Para probar este ejemplo en SQL Developer, introduzca las sentencias y consultas en la hoja de trabajo. Para obtener información sobre la hoja de trabajo, consulte "Ejecución de Consultas en SQL Developer". Los resultados mostrados aquí son de SQL*Plus; su formato es un poco diferente en SQL Developer.

Ejemplo 7-5: efectos de NLS_DATE_LANGUAGE mostrados SYSDATE

  1. Anote el valor actual de NLS_DATE_LANGUAGE.

  2. Si el valor de NLS_DATE_LANGUAGE en la etapa 1 no es FRENCH, cámbielo:

     ALTER SESSION SET NLS_DATE_LANGUAGE=FRENCH;
    
  3. Ejecute esta consulta:

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

    Resultado:

     System Date
    
     --------------------------
    
     Vendredi:28 December   2012
    
  4. Cambie el valor de NLS_DATE_LANGUAGE a SWEDISH:

     ALTER SESSION SET NLS_DATE_LANGUAGE=SWEDISH;
    
  5. Repita la consulta desde el paso 3.

    Resultado:

     System Date
    
     -------------------------
    
     Fredag :28 December   2012
    
  6. Defina NLS_DATE_LANGUAGE en El Valor que Tenía en El Paso 1

Consulte además:

Acerca de los Parámetros NLS_TIMESTAMP_FORMAT y NLS_TIMESTAMP_TZ_FORMAT

Este parámetro especifica el formato de fecha por defecto para la cinta de audio TIMESTAMP y la cinta de audio TIMESTAMP WITH LOCAL TIME ZONEaudiotapeTIMESTAMP WITH LOCAL TIME ZONEaudio.

Especificar el formato de fecha por defecto para lo siguiente:

Valores aceptables: Cualquier modelo con formato de fecha/hora válido. Por ejemplo:

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

Para obtener información sobre los modelos de formato de fecha y hora, consulte Referencia de lenguaje SQL de Oracle Database.

Valor por Defecto: Definido por NLS_TERRITORY, descrito en "Acerca del Parámetro NLS_TERRITORY".

Consulte además:

Acerca del Parámetro NLS_

Este parámetro especifica el sistema de calendario para la base de datos.

Especifica: el sistema de calendario de la base de datos.

Valores aceptables: Cualquier sistema de calendario que Oracle soporte. Para obtener una lista, consulte Guía de soporte de globalización de Oracle Database.

Valor por defecto: Gregorian

En el Ejemplo 7-6 se muestra cómo la definición de NLS_CALENDAR en 'English Hijrah' y Gregorian afecta a la fecha de sistema visualizada.

Para probar este ejemplo en SQL Developer, introduzca las sentencias y consultas en la hoja de trabajo. Para obtener información sobre la hoja de trabajo, consulte "Ejecución de Consultas en SQL Developer". Los resultados mostrados aquí son de SQL*Plus; su formato es un poco diferente en SQL Developer.

Ejemplo 7-6 Los efectos de NLS_CALENDAR mostrados SYSDATE

  1. Anote el valor actual de NLS_CALENDAR.
  2. Si el valor de NLS_CALENDAR en la etapa 1 no es 'English Hijrah', cámbielo:

     ALTER SESSION SET NLS_CALENDAR='English Hijrah';
    
  3. Ejecute la siguiente consulta:

     SELECT SYSDATE FROM DUAL;
    

    Resultado:

     SYSDATE
    
     -------------------------
    
     17 Safar             1434
    
  4. Cambie el valor de NLS_CALENDAR a 'Gregorian':

     ALTER SESSION SET NLS_CALENDAR='Gregorian';
    
  5. Ejecute la siguiente consulta:

     SELECT SYSDATE FROM DUAL;
    

    Resultado:

     SYSDATE
    
     ---------
    
     31-DEC-12
    
  6. Defina NLS_CALENDAR en los valores que tenía en los pasos 1.

Consulte además:

Acerca del Parámetro NLS_NUMERIC_CHARACTERS

Este parámetro especifica el carácter decimal (que separa las partes enteras y decimales de un número) y el separador de grupos (que separa grupos enteros para mostrar las millas y los millones, por ejemplo). El separador de grupos es el carácter devuelto por el elemento del formato numérico G.

Especifica el carácter decimal (que separa las partes entera y decimal de un número) y la separación de grupos (que separa grupos enteros para mostrar las millas y millones, por ejemplo). El separador de grupos es el carácter devuelto por el elemento del formato numérico G.

Valores aceptables: Dos caracteres de un solo byte diferentes, excepto:

Valor por Defecto: Definido por NLS_TERRITORY, descrito en "Acerca del Parámetro NLS_TERRITORY".

En una sentencia SQL, puede representar un número como:

En el Ejemplo 7-7 se muestra cómo dos configuraciones distintas de NLS_NUMERIC_CHARACTERS afectan al resultado mostrado de la misma consulta.

Para probar este ejemplo en SQL Developer, introduzca las sentencias y consultas en la hoja de trabajo. Para obtener información sobre la hoja de trabajo, consulte "Ejecución de Consultas en SQL Developer". Los resultados mostrados aquí son de SQL*Plus; su formato es un poco diferente en SQL Developer.

Ejemplo 7-7 NLS_NUMERIC_CHARACTERS Afecta al Carácter Decimal y Separador de Grupos

  1. Anote el valor actual de NLS_NUMERIC_CHARACTERS.
  2. Si el valor de NLS_NUMERIC_CHARACTERS en la etapa 1 no es ",." (el carácter decimal es coma y los separadores de grupo son punto), cámbielo:

     ALTER SESSION SET NLS_NUMERIC_CHARACTERS=",.";
    
  3. Ejecute la siguiente consulta:

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

    Resultado:

     Number
    
     ---------
     4.000,00
    
  4. Cambie el valor de NLS_NUMERIC_CHARACTERS a ",." (el carácter decimal es un punto y el separador de grupos es coma):

     ALTER SESSION SET NLS_NUMERIC_CHARACTERS=".,";
    
  5. Ejecute la siguiente consulta:

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

    Resultado:

     Number
    
     ---------
     4,000.00
    
  6. Defina NLS_NUMERIC_CHARACTERS en los valores que tenía en la etapa 1.

Consulte además:

Acerca del Parámetro NLS_CURRENCY

Este parámetro especifica el símbolo a la moneda local (cadena a caracteres devuelta por el elemento de formato numérico L).

Especifica el símbolo del divisa local (cadena del carácter devuelta por el elemento del formato numérico L).

Valores aceptables: Cualquier cadena de símbolos de moneda válida.

Valor por Defecto: Definido por NLS_TERRITORY, descrito en "Acerca del Parámetro NLS_TERRITORY".

En el ejemplo 7-8 se cambia el valor de NLS_CURRENCY, sustituyendo el valor predeterminado definido por NLS_TERRITORY. Para probar este ejemplo en SQL Developer, introduzca las sentencias y consultas en la hoja de trabajo. Para obtener información sobre la hoja de trabajo, consulte "Ejecución de Consultas en SQL Developer". Los resultados mostrados aquí son de SQL*Plus; su formato es un poco diferente en SQL Developer.

Ejemplo 7-8 NLS_CURRENCY sustituye a NLS_TERRITORY

  1. Anote los valores actuales de NLS_TERRITORY y NLS_CURRENCY.
  2. Si el valor de NLS_TERRITORY del paso 1 no es AMERICA, cámbielo:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  3. Ejecute esta consulta:

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

    Resultado:

     Salary
    
     ---------------------
    
             $024,000.00
    
             $017,000.00
    
             $017,000.00
    
             $014,000.00
    
             $013,500.00
    
  4. Cambie el valor de NLS_CURRENCY a '©':

     ALTER SESSION SET NLS_CURRENCY='©';
    
  5. Ejecute esta consulta:

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

    Resultado:

     Salary
    
     ---------------------
    
             ©024,000.00
    
             ©017,000.00
    
             ©017,000.00
    
             ©014,000.00
    
             ©013,500.00
    
  6. Defina NLS_TERRITORY y NLS_CURRENCY en los valores que tenían en la etapa 1.

Consulte además:

Acerca del Parámetro NLS_ISO_CURRENCY

Este parámetro especifica el símbolo de moneda ISO (la cadena devuelta por el elemento de formato numérico C).

Especifica: el símbolo De Divisa ISO (cadena De Caracteres Devuelta Por El Elemento De Formato Numérico C).

Valores aceptables: Cualquier cadena de símbolos de moneda válida.

Valor por Defecto: Definido por NLS_TERRITORY, descrito en "Acerca del Parámetro NLS_TERRITORY".

Los símbolos de divisa local pueden ser ambiguos, pero los símbolos de divisa ISO son únicos. En el ejemplo 7-9 se muestra que los territorios AUSTRALIA y AMERICA tienen el mismo indicador de divisa local, pero símbolos de divisa ISO distintos.

Para probar este ejemplo en SQL Developer, introduzca las sentencias y consultas en la hoja de trabajo. Para obtener información sobre la hoja de trabajo, consulte "Ejecución de Consultas en SQL Developer". Los resultados mostrados aquí son de SQL*Plus; su formato es un poco diferente en SQL Developer.

Ejemplo 7-9 NLS_ISO_CURRENCY

  1. Anote los valores actuales de NLS_TERRITORY y NLS_ISO_CURRENCY.
  2. Si el valor de NLS_TERRITORY del paso 1 no es AUSTRALIA, cámbielo:

     ALTER SESSION SET NLS_TERRITORY=AUSTRALIA;
    
  3. Ejecute la siguiente consulta:

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

    Resultado:

     Local                 ISO
    
     --------------------- ------------------
    
             $024,000.00      AUD024,000.00
    
             $017,000.00      AUD017,000.00
    
             $017,000.00      AUD017,000.00
    
  4. Cambie el valor de NLS_TERRITORY a AMERICA:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  5. Ejecute la siguiente consulta:

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

    Resultado:

     Local                 ISO
    
     --------------------- ------------------
    
             $024,000.00      USD024,000.00
    
             $017,000.00      USD017,000.00
    
             $017,000.00      USD017,000.00
    
  6. Defina NLS_TERRITORY y NLS_ISO_CURRENCY en los valores que tenían en la etapa 1.

Consulte además:

Acerca del Parámetro NLS_DUAL_CURRENCY

Este parámetro especifica el símbolo de doble moneda (introducido para soportar el símbolo de la moneda del euro durante el periodo de transición al euro).

Especifica: el símbolo del euro (introducido para soportar el símbolo del euro durante el periodo de transición al euro).

Valores aceptables: Cualquier cadena de símbolos de moneda válida.

Valor por Defecto: Definido por NLS_TERRITORY, descrito en "Acerca del Parámetro NLS_TERRITORY".

Consulte además:

Acerca del Parámetro NLS_SORT

Este parámetro especifica el orden de clasificación lingüística (secuencia de intercalamiento) para consultas que tienen la cláusula ORDER BY.

Especifica la ordenación lingüística (secuencia de intercalamiento) para consultas que tienen la cláusula ORDER BY.

Valores aceptables:

Valor por Defecto: Definido por NLS_LANGUAGE, descrito en "Acerca del Parámetro NLS_LANGUAGE".

En el Ejemplo 7-10 se muestra cómo dos valores de NLS_SORT distintos afectan al resultado mostrado de la misma consulta. Los valores son BINARY y español tradicional (SPANISH_M). El español tradicional trata la ch, ll y ñ como letras que siguen a la c, l y n, respectivamente.

Para probar este ejemplo en SQL Developer, introduzca las sentencias y consultas en la hoja de trabajo. Para obtener información sobre la hoja de trabajo, consulte "Ejecución de Consultas en SQL Developer". Los resultados mostrados aquí son de SQL*Plus; su formato es un poco diferente en SQL Developer.

Ordenaciones No Sensibles a Mayúsculas/Minúsculas Ni a Acentos

Las operaciones dentro de Oracle Database son sensibles a mayúsculas/minúsculas y los acentos de los caracteres. Para realizar una ordenación que no distingue entre mayúsculas y minúsculas, agregue _CI al valor del parámetro NLS_SORT (por ejemplo, BINARY_CI o GERMAN_CI). Para realizar una ordenación que no sea sensible a mayúsculas/minúsculas y acentos, agregue _AI al valor del parámetro NLS_SORT (por ejemplo, BINARY_AI o FRENCH_M_AI).

Ejemplo 7-10 NLS_SORT Afecta al Ordenación Lingüística

  1. Cree una tabla para palabras españolas:

     CREATE TABLE temp (name VARCHAR2(15));
    
  2. Rellene la tabla con algunas palabras españolas:

     INSERT INTO temp (name) VALUES ('laguna');
     INSERT INTO temp (name) VALUES ('llama');
     INSERT INTO temp (name) VALUES ('loco');
    
  3. Anote el valor actual de NLS_SORT.
  4. Si el valor de NLS_SORT del paso 3 no es BINARY, cámbielo:

     ALTER SESSION SET NLS_SORT=BINARY;
    
  5. Ejecute la siguiente consulta:

     SELECT * FROM temp ORDER BY name;
    

    Resultado:

     NAME
    
     ---------------
     laguna
    
     llama
    
     loco
    
  6. Cambie el valor de NLS_SORT a SPANISH_M (español tradicional):

     ALTER SESSION SET NLS_SORT=SPANISH_M;
    
  7. Repita la consulta desde el paso 5.

    Resultado:

     NAME
    
     ---------------
     laguna
    
     loco
    
     llama
    
  8. Borre la tabla:

     DROP TABLE temp;
    
  9. Defina NLS_SORT en El Valor que Tenía en El Paso 3

Consulte además:

Acerca del Parámetro NLS_COMP

Este parámetro especifica el comportamiento de comparación de caracteres de las operaciones SQL.

Especifica: el comportamiento de comparación de carácter de operaciones SQL.

Valores aceptables:

Valor por defecto: BINARY

En el Ejemplo 7-11 se muestra que el resultado de una consulta puede depender de la configuración de NLS_COMP.

Para probar este ejemplo en SQL Developer, introduzca las sentencias y consultas en la hoja de trabajo. Para obtener información sobre la hoja de trabajo, consulte "Ejecución de Consultas en SQL Developer". Los resultados mostrados aquí son de SQL*Plus; su formato es un poco diferente en SQL Developer.

Ejemplo 7-11 NLS_COMP Afecta a las Comparaciones de Caracteres SQL

  1. Anote los valores actuales de NLS_SORT y NLS_COMP.
  2. Si los valores de NLS_SORT y NLS_COMP en los pasos 1 no son SPANISH_M (español tradicional) y BINARY respectivamente, cámbielos:

     ALTER SESSION SET NLS_SORT=SPANISH_M NLS_COMP=BINARY;
    
  3. Ejecute la siguiente consulta:

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

    Resultado:

     LAST_NAME
    
     -------------------------
     Cabrio
     Cambrault
     Cambrault
     Chen
     Chung
     Colmenares
    
     6 rows selected
    
  4. Cambie el valor de NLS_COMP a LINGUISTIC:

     ALTER SESSION SET NLS_COMP=LINGUISTIC;
    
  5. Repita la consulta desde el paso 3.

    Resultado:

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

    Esta vez no se devuelve Chen y Chung porque la lengua española tradicional trata a ch como un carácter único que sigue al c.

  6. Defina NLS_SORT y NLS_COMP en los valores que tenían en la etapa 1.

Consulte además:

Acerca del Parámetro NLS_LENGTH_SEMANTICS

Este parámetro especifica la semántica de longitudes para columnas de tipos del dato de caracteres CHAR, VARCHAR2 y LONG; es decir, si estas columnas se especifican en bytes o en caracteres. (Sólo se aplica a columnas declaradas después de definir el parámetro).

Especifica la semántica a la longitud para columnas de tipos del dato CHAR, VARCHAR2 y LONG; es decir, si estas columnas se especifican en bytes o en caracteres. (Sólo se aplica a columnas declaradas después de definir el parámetro).

Valores aceptables:

Valor por defecto: BYTE

Para probar este ejemplo en SQL Developer, introduzca las sentencias y consultas en la hoja de trabajo. Para obtener información sobre la hoja de trabajo, consulte "Ejecución de Consultas en SQL Developer". Los resultados mostrados aquí son de SQL*Plus; su formato es un poco diferente en SQL Developer.

Ejemplo 7-12 NLS_LENGTH_SEMANTICS Afecta al Almacenamiento de la Columna VARCHAR2

  1. Anote los valores actuales de NLS_LENGTH_SEMANTICS.
  2. Si el valor de NLS_LENGTH_SEMANTICS en la etapa 1 no es BYTE, cámbielo:

     ALTER SESSION SET NLS_LENGTH_SEMANTICS=BYTE;
    
  3. Cree una tabla con una columna VARCHAR2:

     CREATE TABLE SEMANTICS_BYTE(SOME_DATA VARCHAR2(20));
    
  4. Haga clic en el separador Conexiones.

  5. En el marco Conexiones, expanda hr_conn.

  6. En la lista de tipos de objetos de esquema, amplíe Tablas.

  7. En la lista de tablas, seleccione SEMANTICS_BYTE.

    A la derecha del marco Conexiones, el panel Columnas muestra que para la columna Nombre SOME_DATA, el tipo de dato es VARCHAR2(20 BYTE).

  8. Cambie el valor de NLS_LENGTH_SEMANTICS a CHAR:

     ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR;
    
  9. Cree otra tabla con una columna VARCHAR2:

     CREATE TABLE SEMANTICS_CHAR(SOME_DATA VARCHAR2(20));
    
  10. En el marco Conexiones, haga clic en el icono Refrescar.

    La lista de tablas ahora incluye SEMANTICS_CHAR.

  11. Seleccione SEMANTICS_CHAR.

    El panel Columnas muestra que el tipo de dato de la columna SOME_DATA es VARCHAR2(20 CHAR).

  12. Vuelva a seleccionar SEMANTICS_BYTE.

    El panel Columnas muestra que para la columna Nombre SOME_DATA, el tipo de dato sigue siendo VARCHAR2(20 BYTE).

  13. Defina el valor de NLS_LENGTH_SEMANTICS en la cantidad que tenía en la etapa 1.

Consulte además: