2010-10-26 13 views
5

Tenemos el requisito de almacenar datos de caracteres de diferentes idiomas en el mismo esquema db. Oracle 10g es nuestro DB. Espero que alguien que ya haya hecho esto me brinde instrucciones más específicas sobre cómo habilitar i18n un oráculo de 10g db. Solo tenemos que almacenar los datos de varias configuraciones regionales, así como la intercalación (esperando que todos los principales proveedores admitan esto) a nivel de db. No es necesario formatear las fechas, la fecha y la hora, los números, la moneda, etc.oracle and i18n support

Leí algunos documentos sobre el soporte de i18n de Oracle, pero estoy algo confundido acerca de sus muchas propiedades nls_ *. Debería estar usando nls_lang o nls_language o NLS_CHARACTERSET .....

Respuesta

6

Suponiendo que está construyendo la base de datos desde cero, no tratando de actualizar una base de datos existente que presenta otros problemas.

En la base de datos, debe asegurarse de que el juego de caracteres de la base de datos admite todos los caracteres que desea almacenar. Presumiblemente, eso significa establecer el NLS_CHARACTERSET de la base de datos en AL32UTF8. Personalmente, prefiero establecer NLS_LENGTH_SEMANTICS en CHAR también. Eso cambia el comportamiento predeterminado de un VARCHAR2 (n) para asignar n caracteres de almacenamiento en lugar de n bytes. Como AL32UTF8 es un conjunto de caracteres de longitud variable, el uso de la semántica de bytes es generalmente problemático porque debe declarar campos que son 3 veces más largos y terminar con diferentes usuarios que pueden ingresar un número diferente de caracteres en el mismo campo.

NLS_LANG es una configuración de cliente. Eso identifica el conjunto de caracteres al que el cliente va a solicitar que se conviertan los datos. Eso generalmente depende de la página de códigos del sistema operativo.

+0

thx para una respuesta clara. ¿cuál es el significado si AL32UF8. es esto diferente que UTF8? –

+1

AL32UTF8 es UTF8 ver. 3.1 – walla

+0

gracias. Un poco más detalles se pueden encontrar en http://oracleappstechnology.blogspot.com/2007/10/difference-between-utf8-and-al32utf8.html –