[Reproducción] ver y modificar el servidor Oracle y el conjunto de caracteres cliente del servidor de Oracle y el cliente de juego de caracteres de la vista y modificar

Ver y modificar el conjunto de servidores Oracle y caracteres del cliente

 
https: // www.cnblogs.com/lcword/p/5854186.html

 

En primer lugar, ¿cuál es el juego de caracteres de Oracle 

Oracle conjunto de caracteres es un conjunto de símbolos de datos interpretados bytes, el tamaño de los puntos, la relación de tolerancia mutua. Oracle Support arquitectura idioma nacional permite el uso de idioma localizado para almacenar, procesar, recuperar datos. Esto hace que las herramientas de bases de datos, mensajes de error, un orden de publicación, fecha, hora, moneda, números, y el calendario se adaptan automáticamente a la localización del lenguaje y la plataforma. 

Los parámetros más importantes que afectan a Oracle conjunto de caracteres base de datos es el parámetro NLS_LANG. 

Su formato es el siguiente: NLS_LANG = language_territory.charset 

tiene tres componentes (idioma, la geografía y los juegos de caracteres), cada componente controla un subconjunto de NLS características. 

De los cuales: 

Idioma especificar el idioma de los mensajes del servidor, territorio especifica la fecha del servidor y de formato de número, especifica el conjunto de caracteres charset. Tales como :. AMERICAN _ AMERICA ZHS16GBK 

podemos ver a partir de la composición de NLS_LANG, el impacto real del juego de caracteres de la base de datos es la tercera parte. 

Por lo que el conjunto de caracteres entre las dos bases de datos, siempre y cuando la tercera parte podemos importar y exportar datos entre sí, afectando sólo las puntas de la información frente a un chino o Inglés. 

En segundo lugar, comprobar el juego de caracteres de la base de datos 

que implica tres aspectos del juego de caracteres, 

uno es Oracel juego de caracteres del lado del servidor, 

el segundo es el oráculo juego de caracteres del lado del cliente; 

tercero es el juego de caracteres dmp. 

Al hacer la importación de datos requiere los mismos tres conjuntos de caracteres pueden ser importados correctamente. 

1, el carácter de servidor de consultas de Oracle 

Hay muchas maneras de descubrir los juegos de caracteres del lado del servidor Oracle, el método más intuitivo de la investigación fue la siguiente que: 

SQL> seleccionar USERENV ( 'lenguaje'  ) de la doble;

los resultados son similares a lo siguiente :. AMERICAN _ AMERICA ZHS16GBK 

2, la forma de consulta de conjunto de DMP documento de carácter 

derivado por el archivo dmp herramienta de Oracle exp también contiene la información de juego de caracteres, el archivo dmp 2 y 3 bytes registraron conjunto DMP documento de carácter. Si no dmp, como sólo unas pocas decenas de M o M, puede ser utilizado para abrir UltraEdit (hexadecimal), véase el segundo y tercer bytes de contenido, tales como 0354, y luego el carácter que corresponde a la siguiente SQL se conjunto: 

SQL> nls_charset_name SELECT (to_number ( '0354', 'xxxx')) de la doble; 

ZHS16GBK 

Si el archivo dmp es grande, como un 2G o más (este es el caso más común), utilice un editor de texto para abrir muy lentamente o completamente abierta, puede utilizar el siguiente comando (en el host UNIX): 

CAT exp.dmp | -X-OD | head -1 | awk '{} 3 de impresión $ 2 $.' | Cut -C 3-6 

luego puede ser obtenido por el anterior SQL que corresponde al conjunto de caracteres. 

3, el personaje del lado del cliente consulta de Oracle 

Esto es relativamente sencillo. 

En la plataforma Windows, que es el registro correspondiente OracleHome de NLS_LANG. También puede crear su propia ventana en el interior de las tareas pendientes, tales como: establece NLS_LANG = AMERICAN_AMERICA.ZHS16GBK 

Esto afecta sólo a las variables de entorno dentro de la ventana. 

En la plataforma UNIX, es la variable de entorno NLS_LANG. 

$ Echo $ NLS_LANG 

AMERICAN_AMERICA.ZHS16GBK 

Si los resultados de la inspección se observó que la puesta a punto del lado del servidor y el carácter del lado del cliente es incompatible, por favor unificó modificar lo mismo con el juego de caracteres del lado del servidor. 

Añadido: 

. (1) base de datos de juego de caracteres del servidor 

El * SELECT desde NLS_DATABASE_PARAMETERS 

de puntales $, es un conjunto de caracteres de la base de datos. 

(2) El entorno de juego de caracteres del cliente 

seleccionar * desde nls_instance_parameters 

se trata del parámetro v $, representa el conjunto de juego de caracteres del cliente pueden ser archivos de parámetros, variables de entorno o de registro 

(3). Sesión entorno de juego de caracteres 

seleccionar * desde nls_session_parameters 

de v $ NLS_PARAMETERS, indica que los ajustes propios de la sesión, las variables de entorno pueden ser se completa una sesión o una sesión de alter, si la sesión es ninguna configuración especial, consistente con nls_instance_parameters. 

(4) De conformidad con los requisitos del juego de caracteres del servidor de cliente a caracteres no ASCII de visualización en la base de datos correctamente. Si hay más de ajustar la hora, la sesión alter> Variables de entorno> Registro> parámetro de archivo 

de conjunto de caracteres Los requisitos son consistentes, pero pueden configurar un idioma diferente, se recomienda ajuste de idioma Inglés. El juego de caracteres es zhs16gbk, puede ser AMERICAN_AMERICA.ZHS16GBK NLS_LANG. 

En tercer lugar, el conjunto de caracteres Oracle Modificar 

Se mencionó anteriormente, el conjunto de caracteres Oracle tiene una relación mutuamente inclusiva. Como US7ASCII es el hijo de zhs16gbk, no hay ningún problema en la interpretación de los datos de US7ASCII ZHS16GBK, no habrá ninguna pérdida de datos. En todo el conjunto de caracteres UTF-8 debe ser el máximo, ya que se basa en Unicode, los caracteres de doble byte almacenados (y por lo tanto ocupan más espacio en el almacenamiento). 

Una vez creada la base de datos, la teoría de conjuntos de caracteres de base de datos no se puede cambiar. Por lo tanto, a partir del diseño e instalación de considerar el uso del conjunto de caracteres que es muy importante. Según la descripción oficial de Oracle, la conversión del juego de caracteres es de un sub-conjunto de la superconjunto apoyado, no al revés. Si no hay ninguna relación entre subconjunto y superconjunto de entre dos conjuntos de caracteres, a continuación, la conversión del juego de caracteres no es el soporte de Oracle. El servidor de base de datos, los cambios de juego de caracteres incorrecto dará lugar a muchas consecuencias impredecibles que pueden afectar seriamente el funcionamiento normal de la base de datos, así que asegúrese de confirmar antes de modificar la relación entre el subconjunto y superconjunto de los dos conjuntos de caracteres existe. En términos generales, a menos que un último recurso, no nos proponemos modificar la base de datos Oracle conjunto de caracteres del lado del servidor. Nota especial, subgrupo y la relación superconjunto no existe entre nuestros dos caracteres más comunes establecen en ZHS16GBK y ZHS16CGB231280, y por lo tanto en la conversión de la teoría entre estos dos personajes no es compatible. 

1, el lado del servidor de juego de caracteres modificados (no se recomienda) 

antes de que el oráculo 8, puede modificar directamente la tabla de diccionario de datos apoyos $ para cambiar el juego de caracteres de la base de datos. Pero después de oracle8, al menos tres tabla de sistema registra el conjunto de caracteres base de datos de información, sólo para cambiar los apoyos de $ tabla no es completa, puede llevar a consecuencias graves. El derecho a modificar de la siguiente manera: 

$ sqlplus / nolog 

SQL> conn / AS SYSDBA; si esta vez se inicia el servidor de base de datos, el comando primera parada aplicación inmediata para cerrar el servidor de base de datos y, a continuación, ejecute el siguiente comando: 

SQL> INICIO DE MONTAJE; 

El SQL> al alterar el sistema del habilita la RESTRINGIDO de la sesión; 

el SQL> ALTER SYSTEM SET del job_queue_processes = 0; 

el SQL> ALTER SYSTEM SET AQ_TM_PROCESSES = 0; 

el SQL> del ALTER DATABASE OPEN; 

el SQL> la BASE DE DATOS alterar el carácter del SET ZHS16GBK; 

el SQL> la BASE DE DATOS ALTER Nacional del CARÁCTER SET ZHS16GBK; 

SQL > parar inmediatamente; 

SQL> ARRANQUE 

Nota: Si no hay ningún objeto grande, no hay impacto traducción de idiomas durante el uso, (recuerda el juego de caracteres se debe configurar el soporte de Oracle, o no se puede iniciar) por el método anterior puede ser, pero puede habrá 'ORA-12717: no puede ALTER BASE dE dATOS dE CARÁCTER NACIONAL establece cuando existen datos NCLOB' este mensaje 

para solucionar este problema existen dos formas 

una es mediante el uso de palabras clave INTERNAL_USE modificar la configuración regional, 

hay un uso de recrear, pero re-crear un poco complicado, así que tenga internal_use, 

SQL> parar inmediatamente; 

SQL> INICIO DE MONTAJE EXCLUSIVO; 

SQL> ALTER el sistema permiten RESTRINGIDO período de sesiones; 

El SQL> ALTER SYSTEM SET los job_queue_processes = 0; 

el SQL> ALTER SYSTEM SET AQ_TM_PROCESSES = 0; 

el SQL> del ALTER DATABASE OPEN; 

el SQL> la BASE DE DATOS alterar el nacional, el CARÁCTER SET INTERNAL_USE la UTF8; 

el SQL> el cierre inmediato; 

el SQL> inicio; 

si se hace por el método anterior, charset región nacional siempre que no haya problema 

2, modificar el juego de caracteres dmp 

se mencionó anteriormente, el archivo de la segunda y tercera bytes dmp registra la información de juego de caracteres, por tanto, modificar directamente el segundo y tercer bytes de los contenidos del archivo en el DMP se puede 'engañar' comprueba el oráculo. Esta teoría es también sólo de un subconjunto de la superserie se puede modificar, pero en muchos casos también se puede modificar sin las relaciones de subconjunto y superconjunto, utilizamos algunos de los juego de caracteres, tales como US7ASCII, WE8ISO8859P1, ZHS16CGB231280, ZHS16GBK básicamente se puede cambiar. Dado que el cambio es solamente archivos dmp, tan poco efecto. 

método de modificación más específico, el más simple se modifica con UltraEdit 2 y el archivo de 3 bytes de DMP. 

Por ejemplo quiere cambiar el juego de caracteres dmp ZHS16GBK, puede aislarse por el siguiente código SQL es el conjunto de caracteres hexadecimal correspondiente a este tipo: SQL> select to_char (nls_charset_id (  'ZHS16GBK'), 'xxxx') de la doble;

0354 

bytes archivo a continuación, 2,3 DMP puede ser modificado para 0354. 

Si el archivo dmp es grande, la UE no puede abrir, tenemos que utilizar el método del programa

En primer lugar, ¿cuál es el juego de caracteres de Oracle 

Oracle conjunto de caracteres es un conjunto de símbolos de datos interpretados bytes, el tamaño de los puntos, la relación de tolerancia mutua. Oracle Support arquitectura idioma nacional permite el uso de idioma localizado para almacenar, procesar, recuperar datos. Esto hace que las herramientas de bases de datos, mensajes de error, un orden de publicación, fecha, hora, moneda, números, y el calendario se adaptan automáticamente a la localización del lenguaje y la plataforma. 

Los parámetros más importantes que afectan a Oracle conjunto de caracteres base de datos es el parámetro NLS_LANG. 

Su formato es el siguiente: NLS_LANG = language_territory.charset 

tiene tres componentes (idioma, la geografía y los juegos de caracteres), cada componente controla un subconjunto de NLS características. 

De los cuales: 

Idioma especificar el idioma de los mensajes del servidor, territorio especifica la fecha del servidor y de formato de número, especifica el conjunto de caracteres charset. Tales como :. AMERICAN _ AMERICA ZHS16GBK 

podemos ver a partir de la composición de NLS_LANG, el impacto real del juego de caracteres de la base de datos es la tercera parte. 

Por lo que el conjunto de caracteres entre las dos bases de datos, siempre y cuando la tercera parte podemos importar y exportar datos entre sí, afectando sólo las puntas de la información frente a un chino o Inglés. 

En segundo lugar, comprobar el juego de caracteres de la base de datos 

que implica tres aspectos del juego de caracteres, 

uno es Oracel juego de caracteres del lado del servidor, 

el segundo es el oráculo juego de caracteres del lado del cliente; 

tercero es el juego de caracteres dmp. 

Al hacer la importación de datos requiere los mismos tres conjuntos de caracteres pueden ser importados correctamente. 

1, el carácter de servidor de consultas de Oracle 

Hay muchas maneras de descubrir los juegos de caracteres del lado del servidor Oracle, el método más intuitivo de la investigación fue la siguiente que: 

SQL> seleccionar USERENV ( 'lenguaje'  ) de la doble;

los resultados son similares a lo siguiente :. AMERICAN _ AMERICA ZHS16GBK 

2, la forma de consulta de conjunto de DMP documento de carácter 

derivado por el archivo dmp herramienta de Oracle exp también contiene la información de juego de caracteres, el archivo dmp 2 y 3 bytes registraron conjunto DMP documento de carácter. Si no dmp, como sólo unas pocas decenas de M o M, puede ser utilizado para abrir UltraEdit (hexadecimal), véase el segundo y tercer bytes de contenido, tales como 0354, y luego el carácter que corresponde a la siguiente SQL se conjunto: 

SQL> nls_charset_name SELECT (to_number ( '0354', 'xxxx')) de la doble; 

ZHS16GBK 

Si el archivo dmp es grande, como un 2G o más (este es el caso más común), utilice un editor de texto para abrir muy lentamente o completamente abierta, puede utilizar el siguiente comando (en el host UNIX): 

CAT exp.dmp | -X-OD | head -1 | awk '{} 3 de impresión $ 2 $.' | Cut -C 3-6 

luego puede ser obtenido por el anterior SQL que corresponde al conjunto de caracteres. 

3, el personaje del lado del cliente consulta de Oracle 

Esto es relativamente sencillo. 

En la plataforma Windows, que es el registro correspondiente OracleHome de NLS_LANG. También puede crear su propia ventana en el interior de las tareas pendientes, tales como: establece NLS_LANG = AMERICAN_AMERICA.ZHS16GBK 

Esto afecta sólo a las variables de entorno dentro de la ventana. 

En la plataforma UNIX, es la variable de entorno NLS_LANG. 

$ Echo $ NLS_LANG 

AMERICAN_AMERICA.ZHS16GBK 

Si los resultados de la inspección se observó que la puesta a punto del lado del servidor y el carácter del lado del cliente es incompatible, por favor unificó modificar lo mismo con el juego de caracteres del lado del servidor. 

Añadido: 

. (1) base de datos de juego de caracteres del servidor 

El * SELECT desde NLS_DATABASE_PARAMETERS 

de puntales $, es un conjunto de caracteres de la base de datos. 

(2) El entorno de juego de caracteres del cliente 

seleccionar * desde nls_instance_parameters 

se trata del parámetro v $, representa el conjunto de juego de caracteres del cliente pueden ser archivos de parámetros, variables de entorno o de registro 

(3). Sesión entorno de juego de caracteres 

seleccionar * desde nls_session_parameters 

de v $ NLS_PARAMETERS, indica que los ajustes propios de la sesión, las variables de entorno pueden ser se completa una sesión o una sesión de alter, si la sesión es ninguna configuración especial, consistente con nls_instance_parameters. 

(4) De conformidad con los requisitos del juego de caracteres del servidor de cliente a caracteres no ASCII de visualización en la base de datos correctamente. Si hay más de ajustar la hora, la sesión alter> Variables de entorno> Registro> parámetro de archivo 

de conjunto de caracteres Los requisitos son consistentes, pero pueden configurar un idioma diferente, se recomienda ajuste de idioma Inglés. El juego de caracteres es zhs16gbk, puede ser AMERICAN_AMERICA.ZHS16GBK NLS_LANG. 

En tercer lugar, el conjunto de caracteres Oracle Modificar 

Se mencionó anteriormente, el conjunto de caracteres Oracle tiene una relación mutuamente inclusiva. Como US7ASCII es el hijo de zhs16gbk, no hay ningún problema en la interpretación de los datos de US7ASCII ZHS16GBK, no habrá ninguna pérdida de datos. En todo el conjunto de caracteres UTF-8 debe ser el máximo, ya que se basa en Unicode, los caracteres de doble byte almacenados (y por lo tanto ocupan más espacio en el almacenamiento). 

Una vez creada la base de datos, la teoría de conjuntos de caracteres de base de datos no se puede cambiar. Por lo tanto, a partir del diseño e instalación de considerar el uso del conjunto de caracteres que es muy importante. Según la descripción oficial de Oracle, la conversión del juego de caracteres es de un sub-conjunto de la superconjunto apoyado, no al revés. Si no hay ninguna relación entre subconjunto y superconjunto de entre dos conjuntos de caracteres, a continuación, la conversión del juego de caracteres no es el soporte de Oracle. El servidor de base de datos, los cambios de juego de caracteres incorrecto dará lugar a muchas consecuencias impredecibles que pueden afectar seriamente el funcionamiento normal de la base de datos, así que asegúrese de confirmar antes de modificar la relación entre el subconjunto y superconjunto de los dos conjuntos de caracteres existe. En términos generales, a menos que un último recurso, no nos proponemos modificar la base de datos Oracle conjunto de caracteres del lado del servidor. Nota especial, subgrupo y la relación superconjunto no existe entre nuestros dos caracteres más comunes establecen en ZHS16GBK y ZHS16CGB231280, y por lo tanto en la conversión de la teoría entre estos dos personajes no es compatible. 

1, el lado del servidor de juego de caracteres modificados (no se recomienda) 

antes de que el oráculo 8, puede modificar directamente la tabla de diccionario de datos apoyos $ para cambiar el juego de caracteres de la base de datos. Pero después de oracle8, al menos tres tabla de sistema registra el conjunto de caracteres base de datos de información, sólo para cambiar los apoyos de $ tabla no es completa, puede llevar a consecuencias graves. El derecho a modificar de la siguiente manera: 

$ sqlplus / nolog 

SQL> conn / AS SYSDBA; si esta vez se inicia el servidor de base de datos, el comando primera parada aplicación inmediata para cerrar el servidor de base de datos y, a continuación, ejecute el siguiente comando: 

SQL> INICIO DE MONTAJE; 

El SQL> al alterar el sistema del habilita la RESTRINGIDO de la sesión; 

el SQL> ALTER SYSTEM SET del job_queue_processes = 0; 

el SQL> ALTER SYSTEM SET AQ_TM_PROCESSES = 0; 

el SQL> del ALTER DATABASE OPEN; 

el SQL> la BASE DE DATOS alterar el carácter del SET ZHS16GBK; 

el SQL> la BASE DE DATOS ALTER Nacional del CARÁCTER SET ZHS16GBK; 

SQL > parar inmediatamente; 

SQL> ARRANQUE 

Nota: Si no hay ningún objeto grande, no hay impacto traducción de idiomas durante el uso, (recuerda el juego de caracteres se debe configurar el soporte de Oracle, o no se puede iniciar) por el método anterior puede ser, pero puede habrá 'ORA-12717: no puede ALTER BASE dE dATOS dE CARÁCTER NACIONAL establece cuando existen datos NCLOB' este mensaje 

para solucionar este problema existen dos formas 

una es mediante el uso de palabras clave INTERNAL_USE modificar la configuración regional, 

hay un uso de recrear, pero re-crear un poco complicado, así que tenga internal_use, 

SQL> parar inmediatamente; 

SQL> INICIO DE MONTAJE EXCLUSIVO; 

SQL> ALTER el sistema permiten RESTRINGIDO período de sesiones; 

El SQL> ALTER SYSTEM SET los job_queue_processes = 0; 

el SQL> ALTER SYSTEM SET AQ_TM_PROCESSES = 0; 

el SQL> del ALTER DATABASE OPEN; 

el SQL> la BASE DE DATOS alterar el nacional, el CARÁCTER SET INTERNAL_USE la UTF8; 

el SQL> el cierre inmediato; 

el SQL> inicio; 

si se hace por el método anterior, charset región nacional siempre que no haya problema 

2, modificar el juego de caracteres dmp 

se mencionó anteriormente, el archivo de la segunda y tercera bytes dmp registra la información de juego de caracteres, por tanto, modificar directamente el segundo y tercer bytes de los contenidos del archivo en el DMP se puede 'engañar' comprueba el oráculo. Esta teoría es también sólo de un subconjunto de la superserie se puede modificar, pero en muchos casos también se puede modificar sin las relaciones de subconjunto y superconjunto, utilizamos algunos de los juego de caracteres, tales como US7ASCII, WE8ISO8859P1, ZHS16CGB231280, ZHS16GBK básicamente se puede cambiar. Dado que el cambio es solamente archivos dmp, tan poco efecto. 

método de modificación más específico, el más simple se modifica con UltraEdit 2 y el archivo de 3 bytes de DMP. 

Por ejemplo quiere cambiar el juego de caracteres dmp ZHS16GBK, puede aislarse por el siguiente código SQL es el conjunto de caracteres hexadecimal correspondiente a este tipo: SQL> select to_char (nls_charset_id (  'ZHS16GBK'), 'xxxx') de la doble;

0354 

bytes archivo a continuación, 2,3 DMP puede ser modificado para 0354. 

Si el archivo dmp es grande, la UE no puede abrir, tenemos que utilizar el método del programa

Supongo que te gusta

Origin www.cnblogs.com/jinanxiaolaohu/p/12499601.html
Recomendado
Clasificación