����Linux��
Linux����

Oracle���ݿ��ַ��������ܽ�

����ʱ��:2006-09-01 00:48:43��Դ:��������:chxuemei
�����ڲ�ͬ���ݿ�������Ǩ�ơ�ͬ����ϵͳ�������ݵȣ�������Ϊ�ַ�����ͬ������Ǩ��ʧ�ܻ����ݿ������ݱ�����롣�����ҽ�oracle�ַ�����ص�һЩ֪ʶ�������ܽ�

һ��ʲô��oracle�ַ���

����Oracle�ַ�����һ���ֽ����ݵĽ��͵ķ��ż���,�д�С֮��,���໥�İ��ݹ�ϵ��ORACLE ֧�ֹ������Ե���ϵ�ṹ������ʹ�ñ��ػ��������洢���������������ݡ���ʹ���ݿ⹤�ߣ�������Ϣ������������ڣ�ʱ�䣬���ң����֣��������Զ���Ӧ���ػ����Ժ�ƽ̨��

����Ӱ��oracle���ݿ��ַ�������Ҫ�IJ�����NLS_LANG���������ĸ�ʽ����:

[code]NLS_LANG = language_territory.charset[/code]

��������������ɲ���(���ԡ�������ַ���)��ÿ���ɷֿ�����NLS�Ӽ������ԡ�����:

����Language ָ����������Ϣ�����ԣ�territory ָ�������������ں����ָ�ʽ��charset ָ���ַ�������:AMERICAN _ AMERICA. ZHS16GBK

������NLS_LANG��������ǿ��Կ���������Ӱ�����ݿ��ַ�������ʵ�ǵ������֡������������ݿ�֮����ַ���ֻҪ��������һ���Ϳ����໥���뵼�����ݣ�ǰ��Ӱ���ֻ����ʾ��Ϣ�����Ļ���Ӣ�ġ�

������β�ѯOracle���ַ���

�����ܶ��˶���������Ϊ�ַ�����ͬ��ʹ���ݵ���ʧ�ܵ���������漰��������ַ�����һ��oracel server�˵��ַ���������oracle client�˵��ַ���;����dmp�ļ����ַ������������ݵ����ʱ����Ҫ�������ַ�����һ�²�����ȷ���롣

����1����ѯoracle server�˵��ַ���

�����кܶ��ַ������Բ��oracle server�˵��ַ������Ƚ�ֱ�۵IJ�ѯ��������������:

[code]SQL>select userenv(��language��) from dual;[/code]

���������������:AMERICAN _ AMERICA. ZHS16GBK

����2����β�ѯdmp�ļ����ַ���

������oracle��exp���ߵ�����dmp�ļ�Ҳ�������ַ�����Ϣ��dmp�ļ��ĵ�2�͵�3���ֽڼ�¼��dmp�ļ����ַ��������dmp�ļ����󣬱���ֻ�м�M��ʮM��������UltraEdit��(16���Ʒ�ʽ)������2��3���ֽڵ����ݣ���0354��Ȼ��������SQL�������Ӧ���ַ���:

[code]SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;
ZHS16GBK[/code]

�������dmp�ļ��ܴ󣬱�����2G����(��Ҳ����������)�����ı��༭���򿪺���������ȫ�򲻿�����������������(��unix������):

[code]cat exp.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6[/code]

����Ȼ��������SQLҲ���Եõ�����Ӧ���ַ�����

����3����ѯoracle client�˵��ַ���

��������Ƚϼ򵥡���windowsƽ̨�£�����ע���������ӦOracleHome��NLS_LANG����������dos���������Լ����ã�����:

[code]set nls_lang=AMERICAN_AMERICA.ZHS16GBK[/code]

����������ֻӰ�������������Ļ���������

������unixƽ̨�£����ǻ�������NLS_LANG��

[code]$echo $NLS_LANG

AMERICAN_AMERICA.ZHS16GBK[/code]

����������Ľ������server����client���ַ�����һ�£���ͳһ�޸�Ϊͬserver����ͬ���ַ�����

�����޸�oracle���ַ���

��������˵����oracle���ַ����л���İ��ݹ�ϵ����us7ascii����zhs16gbk���Ӽ�,��us7ascii��zhs16gbk���������ݽ����ϵ�����,���������ݶ�ʧ�������е��ַ�����utf8Ӧ�������,��Ϊ������unicode,˫�ֽڱ����ַ�(Ҳ����ڴ洢�ռ���ռ�ø���)��

����һ�����ݿⴴ�������ݿ���ַ��������Ͻ��Dz��ܸı�ġ���ˣ�����ƺͰ�װ֮������ʹ����һ���ַ���ʮ����Ҫ������Oracle�Ĺٷ�˵�����ַ�����ת���Ǵ��Ӽ���������֧��,��֮���С���������ַ���֮�����û���Ӽ��ͳ����Ĺ�ϵ����ô�ַ�����ת���Dz���oracle֧�ֵġ������ݿ�server���ԣ�������޸��ַ������ᵼ�ºܶ಻�ɲ�ĺ�������ܻ�����Ӱ�����ݿ���������У��������޸�֮ǰһ��Ҫȷ�������ַ����Ƿ�����Ӽ��ͳ����Ĺ�ϵ��һ����˵�������򲻵��ѣ����Dz������޸�oracle���ݿ�server�˵��ַ������ر�˵����������õ������ַ���ZHS16GBK��ZHS16CGB231280֮�䲻�����Ӽ��ͳ�����ϵ����������Ͻ��������ַ���֮����໥ת������֧�֡�

����1���޸�server���ַ���(������ʹ��)

������oracle 8֮ǰ��������ֱ���޸������ֵ��props$���ı����ݿ���ַ�������oracle8֮������������ϵͳ����¼�����ݿ��ַ�������Ϣ��ֻ��props$��������ȫ�������������صĺ������ȷ���޸ķ�������:

[code]$sqlplus /nolog

SQL>conn / as sysdba;[/code]

��������ʱ���ݿ������������������ִ��SHUTDOWN IMMEDIATE����ر����ݿ��������Ȼ��ִ����������:

[code]SQL>STARTUP MOUNT;
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL>ALTER DATABASE OPEN;
SQL>ALTER DATABASE CHARACTER SET ZHS16GBK;
SQL>ALTER DATABASE national CHARACTER SET ZHS16GBK;
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP[/code]

����2���޸�dmp�ļ��ַ���

��������˵����dmp�ļ��ĵ�2��3�ֽڼ�¼���ַ�����Ϣ�����ֱ���޸�dmp�ļ��ĵ�2��3�ֽڵ����ݾͿ��ԡ�ƭ����oracle�ļ�顣������������Ҳ���Ǵ��Ӽ������������޸ģ����ܶ��������û���Ӽ��ͳ�����ϵ�������Ҳ�����޸ģ����dz��õ�һЩ�ַ�������US7ASCII��WE8ISO8859P1��ZHS16CGB231280��ZHS16GBK���������Ըġ���Ϊ�ĵ�ֻ��dmp�ļ�������Ӱ�첻��

����������޸ķ����Ƚ϶࣬��򵥵ľ���ֱ����UltraEdit�޸�dmp�ļ��ĵ�2�͵�3���ֽڡ������뽫dmp�ļ����ַ�����ΪZHS16GBK������������SQL��������ַ�����Ӧ��16���ƴ���:

[code]SQL> select to_char(nls_charset_id('ZHS16GBK'), 'xxxx') from dual;

0354[/code]

����Ȼ��dmp�ļ���2��3�ֽ��޸�Ϊ0354���ɡ�

�������dmp�ļ��ܴ���ue�޷��򿪣�����Ҫ�ó���ķ����ˡ�����������java�洢����д��ת���ij���(��java�洢���̵ĺô���ͨ���Խ̺ã�ȱ���DZȽ��鷳)������windows�²���ͨ������Ҫ��oracle���ݿ�һ��Ҫ��װJVMѡ�����Ȥ�����ѿ����о�һ�³������.
��������

���� 1 ������

  1. �Ϻ� �� 2006-09-01 16:02:00����:

    ·��ѧϰ