±¾ÎÄ´Ó¶¨ÒåÈëÊÖÀ´½²½â¶ÔOracleÊý¾Ý¿â×Ö·û¼¯ÈçºÎÈ«ÃæÈÏʶ¡£
¡¡¡¡Ê²Ã´ÊÇOracle×Ö·û¼¯
¡¡¡¡Oracle×Ö·û¼¯ÊÇÒ»¸ö×Ö½ÚÊý¾ÝµÄ½âÊ͵ķûºÅ¼¯ºÏ,ÓдóС֮·Ö,ÓÐÏ໥µÄ°üÈݹØÏµ¡£
¡¡¡¡OracleÖ§³Ö¹ú¼ÒÓïÑÔµÄÌåϵ½á¹¹ÔÊÐíÄãʹÓñ¾µØ»¯ÓïÑÔÀ´´æ´¢£¬´¦Àí£¬¼ìË÷Êý¾Ý¡£ËüʹÊý¾Ý¿â¹¤¾ß£¬´íÎóÏûÏ¢£¬ÅÅÐò´ÎÐò£¬ÈÕÆÚ£¬Ê±¼ä£¬»õ±Ò£¬Êý×Ö£¬ºÍÈÕÀú×Ô¶¯ÊÊÓ¦±¾µØ»¯ÓïÑÔºÍÆ½Ì¨¡£
¡¡¡¡Ó°ÏìoracleÊý¾Ý¿â×Ö·û¼¯×îÖØÒªµÄ²ÎÊýÊÇNLS_LANG²ÎÊý¡£ËüµÄ¸ñʽÈçÏÂ:
¡¡¡¡NLS_LANG = language_territory.charset
¡¡¡¡ËüÓÐÈý¸ö×é³É²¿·Ö(ÓïÑÔ¡¢µØÓòºÍ×Ö·û¼¯)£¬Ã¿¸ö³É·Ö¿ØÖÆÁËNLS×Ó¼¯µÄÌØÐÔ¡£ÆäÖÐ:
¡¡¡¡Language Ö¸¶¨·þÎñÆ÷ÏûÏ¢µÄÓïÑÔ£¬territory Ö¸¶¨·þÎñÆ÷µÄÈÕÆÚºÍÊý×Ö¸ñʽ£¬charsetÖ¸¶¨×Ö·û¼¯¡£Èç:AMERICAN _ AMERICA. ZHS16GBK¡£
¡¡¡¡´ÓNLS_LANGµÄ×é³ÉÎÒÃÇ¿ÉÒÔ¿´³ö£¬ÕæÕýÓ°ÏìÊý¾Ý¿â×Ö·û¼¯µÄÆäʵÊǵÚÈý²¿·Ö¡£ËùÒÔÁ½¸öÊý¾Ý¿âÖ®¼äµÄ×Ö·û¼¯Ö»ÒªµÚÈý²¿·ÖÒ»Ñù¾Í¿ÉÒÔÏ໥µ¼Èëµ¼³öÊý¾Ý£¬Ç°ÃæÓ°ÏìµÄÖ»ÊÇÌáʾÐÅÏ¢ÊÇÖÐÎÄ»¹ÊÇÓ¢ÎÄ¡£
¡¡¡¡ÈçºÎ²éѯOracleµÄ×Ö·û¼¯
¡¡¡¡ºÜ¶àÈ˶¼Åöµ½¹ýÒòΪ×Ö·û¼¯²»Í¬¶øÊ¹Êý¾Ýµ¼Èëʧ°ÜµÄÇé¿ö¡£ÕâÉæ¼°Èý·½ÃæµÄ×Ö·û¼¯£¬Ò»ÊÇOracel server¶ËµÄ×Ö·û¼¯£¬¶þÊÇoracle client¶ËµÄ×Ö·û¼¯;ÈýÊÇdmpÎļþµÄ×Ö·û¼¯¡£ÔÚ×öÊý¾Ýµ¼ÈëµÄʱºò£¬ÐèÒªÕâÈý¸ö×Ö·û¼¯¶¼Ò»Ö²ÅÄÜÕýÈ·µ¼Èë¡£
¡¡¡¡1¡¢²éѯOracle Server¶ËµÄ×Ö·û¼¯£º
¡¡¡¡ÓкܶàÖÖ·½·¨¿ÉÒÔ²é³öoracle server¶ËµÄ×Ö·û¼¯£¬±È½ÏÖ±¹ÛµÄ²éѯ·½·¨ÊÇÒÔÏÂÕâÖÖ:
¡¡¡¡SQL>select userenv(‘language’) from dual;
¡¡¡¡½á¹ûÀàËÆÈçÏÂ:AMERICAN _ AMERICA. ZHS16GBK¡£
¡¡¡¡2¡¢ÈçºÎ²éѯdmpÎļþµÄ×Ö·û¼¯:
¡¡¡¡ÓÃOracleµÄexp¹¤¾ßµ¼³öµÄdmpÎļþÒ²°üº¬ÁË×Ö·û¼¯ÐÅÏ¢£¬dmpÎļþµÄµÚ2ºÍµÚ3¸ö×ֽڼǼÁËdmpÎļþµÄ×Ö·û¼¯¡£Èç¹ûdmpÎļþ²»´ó£¬±ÈÈçÖ»Óм¸M»ò¼¸Ê®M£¬¿ÉÒÔÓÃUltraEdit´ò¿ª(16½øÖÆ·½Ê½)£¬¿´µÚ2µÚ3¸ö×Ö½ÚµÄÄÚÈÝ£¬Èç0354£¬È»ºóÓÃÒÔÏÂSQL²é³öËü¶ÔÓ¦µÄ×Ö·û¼¯:
¡¡¡¡SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;
¡¡¡¡ZHS16GBK
¡¡¡¡Èç¹ûdmpÎļþºÜ´ó£¬±ÈÈçÓÐ2GÒÔÉÏ(ÕâÒ²ÊÇ×î³£¼ûµÄÇé¿ö)£¬ÓÃÎı¾±à¼Æ÷´ò¿ªºÜÂý»òÕßÍêÈ«´ò²»¿ª£¬¿ÉÒÔÓÃÒÔÏÂÃüÁî(ÔÚunixÖ÷»úÉÏ):
¡¡¡¡cat exp.dmp ¡¡od -x¡¡head -1¡¡awk '{print $2 $3}'¡¡cut -c 3-6
¡¡¡¡È»ºóÓÃÉÏÊöSQLÒ²¿ÉÒԵõ½Ëü¶ÔÓ¦µÄ×Ö·û¼¯¡£
¡¡¡¡3¡¢²éѯOracle client¶ËµÄ×Ö·û¼¯£º
¡¡¡¡Õâ¸ö±È½Ï¼òµ¥¡£ÔÚWindowsƽ̨Ï£¬¾ÍÊÇ×¢²á±íÀïÃæÏàÓ¦OracleHomeµÄNLS_LANG¡£»¹¿ÉÒÔÔÚDos´°¿ÚÀïÃæ×Ô¼ºÉèÖ㬱ÈÈç:
¡¡¡¡set nls_lang=AMERICAN_AMERICA.ZHS16GBK
¡¡¡¡ÕâÑù¾ÍÖ»Ó°ÏìÕâ¸ö´°¿ÚÀïÃæµÄ»·¾³±äÁ¿¡£ ÔÚUnixƽ̨Ï£¬¾ÍÊÇ»·¾³±äÁ¿NLS_LANG¡£
¡¡¡¡$echo $NLS_LANG
¡¡¡¡AMERICAN_AMERICA.ZHS16GBK
¡¡¡¡Èç¹û¼ì²éµÄ½á¹û·¢ÏÖServer¶ËÓëClient¶Ë×Ö·û¼¯²»Ò»Ö£¬ÇëͳһÐÞ¸ÄΪͬServer¶ËÏàͬµÄ×Ö·û¼¯¡£
¡¡¡¡ÐÞ¸ÄOracleµÄ×Ö·û¼¯
¡¡¡¡ÉÏÎÄ˵¹ý£¬oracleµÄ×Ö·û¼¯Óл¥ÏàµÄ°üÈݹØÏµ¡£
¡¡¡¡Èçus7ascii¾ÍÊÇzhs16gbkµÄ×Ó¼¯,´Óus7asciiµ½zhs16gbk²»»áÓÐÊý¾Ý½âÊÍÉϵÄÎÊÌâ,²»»áÓÐÊý¾Ý¶ªÊ§¡£ÔÚËùÓеÄ×Ö·û¼¯ÖÐutf8Ó¦¸ÃÊÇ×î´ó,ÒòΪËü»ùÓÚunicode,Ë«×Ö½Ú±£´æ×Ö·û(Ò²Òò´ËÔÚ´æ´¢¿Õ¼äÉÏÕ¼Óøü¶à)¡£
¡¡¡¡Ò»µ©Êý¾Ý¿â´´½¨ºó£¬Êý¾Ý¿âµÄ×Ö·û¼¯ÀíÂÛÉϽ²ÊDz»ÄܸıäµÄ¡£Òò´Ë£¬ÔÚÉè¼ÆºÍ°²×°Ö®³õ¿¼ÂÇʹÓÃÄÄÒ»ÖÖ×Ö·û¼¯Ê®·ÖÖØÒª¡£¸ù¾ÝOracleµÄ¹Ù·½ËµÃ÷£¬×Ö·û¼¯µÄת»»ÊÇ´Ó×Ó¼¯µ½³¬¼¯ÊÜÖ§³Ö,·´Ö®²»ÐС£Èç¹ûÁ½ÖÖ×Ö·û¼¯Ö®¼ä¸ù±¾Ã»ÓÐ×Ó¼¯ºÍ³¬¼¯µÄ¹ØÏµ£¬ÄÇô×Ö·û¼¯µÄת»»ÊDz»ÊÜoracleÖ§³ÖµÄ¡£¶ÔÊý¾Ý¿âserver¶øÑÔ£¬´íÎóµÄÐÞ¸Ä×Ö·û¼¯½«»áµ¼Öºܶ಻¿É²âµÄºó¹û£¬¿ÉÄÜ»áÑÏÖØÓ°ÏìÊý¾Ý¿âµÄÕý³£ÔËÐУ¬ËùÒÔÔÚÐÞ¸Ä֮ǰһ¶¨ÒªÈ·ÈÏÁ½ÖÖ×Ö·û¼¯ÊÇ·ñ´æÔÚ×Ó¼¯ºÍ³¬¼¯µÄ¹ØÏµ¡£Ò»°ãÀ´Ëµ£¬³ý·ÇÍò²»µÃÒÑ£¬ÎÒÃDz»½¨ÒéÐÞ¸ÄoracleÊý¾Ý¿âserver¶ËµÄ×Ö·û¼¯¡£Ìرð˵Ã÷£¬ÎÒÃÇ×î³£ÓõÄÁ½ÖÖ×Ö·û¼¯ZHS16GBKºÍZHS16CGB231280Ö®¼ä²»´æÔÚ×Ó¼¯ºÍ³¬¼¯¹ØÏµ£¬Òò´ËÀíÂÛÉϽ²ÕâÁ½ÖÖ×Ö·û¼¯Ö®¼äµÄÏ໥ת»»²»ÊÜÖ§³Ö¡£
¡¡¡¡ÐÞ¸ÄServer¶Ë×Ö·û¼¯(²»½¨ÒéʹÓÃ):
¡¡¡¡ÔÚOracle 8֮ǰ£¬¿ÉÒÔÓÃÖ±½ÓÐÞ¸ÄÊý¾Ý×Öµä±íprops$À´¸Ä±äÊý¾Ý¿âµÄ×Ö·û¼¯¡£µ«Oracle8Ö®ºó£¬ÖÁÉÙÓÐÈýÕÅϵͳ±í¼Ç¼ÁËÊý¾Ý¿â×Ö·û¼¯µÄÐÅÏ¢£¬Ö»¸Äprops$±í²¢²»ÍêÈ«£¬¿ÉÄÜÒýÆðÑÏÖØµÄºó¹û¡£ÕýÈ·µÄÐ޸ķ½·¨ÈçÏÂ:
¡¡¡¡$sqlplus /nolog
¡¡¡¡SQL>conn / as sysdba;
¡¡¡¡Èô´ËʱÊý¾Ý¿â·þÎñÆ÷ÒÑÆô¶¯£¬ÔòÏÈÖ´ÐÐSHUTDOWN IMMEDIATEÃüÁî¹Ø±ÕÊý¾Ý¿â·þÎñÆ÷£¬È»ºóÖ´ÐÐÒÔÏÂÃüÁî:
¡¡¡¡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
¡¡¡¡ÐÞ¸ÄdmpÎļþ×Ö·û¼¯:
¡¡¡¡ÉÏÎÄ˵¹ý£¬dmpÎļþµÄµÚ2µÚ3×ֽڼǼÁË×Ö·û¼¯ÐÅÏ¢£¬Òò´ËÖ±½ÓÐÞ¸ÄdmpÎļþµÄµÚ2µÚ3×Ö½ÚµÄÄÚÈݾͿÉÒÔ‘Æ’¹ýoracleµÄ¼ì²é¡£ÕâÑù×öÀíÂÛÉÏÒ²½öÊÇ´Ó×Ó¼¯µ½³¬¼¯¿ÉÒÔÐ޸쬵«ºÜ¶àÇé¿öÏÂÔÚûÓÐ×Ó¼¯ºÍ³¬¼¯¹ØÏµµÄÇé¿öÏÂÒ²¿ÉÒÔÐ޸ģ¬ÎÒÃdz£ÓõÄһЩ×Ö·û¼¯£¬ÈçUS7ASCII£¬WE8ISO8859P1£¬ZHS16CGB231280£¬ZHS16GBK»ù±¾¶¼¿ÉÒԸġ£ÒòΪ¸ÄµÄÖ»ÊÇdmpÎļþ£¬ËùÒÔÓ°Ïì²»´ó¡£
¡¡¡¡¾ßÌåµÄÐ޸ķ½·¨±È½Ï¶à£¬×î¼òµ¥µÄ¾ÍÊÇÖ±½ÓÓÃUltraEditÐÞ¸ÄdmpÎļþµÄµÚ2ºÍµÚ3¸ö×Ö½Ú¡£±ÈÈçÏ뽫dmpÎļþµÄ×Ö·û¼¯¸ÄΪZHS16GBK£¬¿ÉÒÔÓÃÒÔÏÂSQL²é³ö¸ÃÖÖ×Ö·û¼¯¶ÔÓ¦µÄ16½øÖÆ´úÂë:
¡¡¡¡SQL> select to_char(nls_charset_id('ZHS16GBK'),
¡¡¡¡'xxxx') from dual;
¡¡¡¡0354
¡¡¡¡È»ºó½«dmpÎļþµÄ2¡¢3×Ö½ÚÐÞ¸ÄΪ0354¼´¿É¡£
¡¡¡¡Èç¹ûdmpÎļþºÜ´ó£¬ÓÃueÎÞ·¨´ò¿ª£¬¾ÍÐèÒªÓóÌÐòµÄ·½·¨ÁË¡£ÍøÉÏÓÐÈËÓÃjava´æ´¢¹ý³ÌдÁËת»»µÄ³ÌÐò(ÓÃjava´æ´¢¹ý³ÌµÄºÃ´¦ÊÇͨÓÃÐԽ̺ã¬È±µãÊDZȽÏÂé·³)¡£ÎÒÔÚWindowsϲâÊÔͨ¹ý¡£µ«ÒªÇóOracleÊý¾Ý¿âÒ»¶¨Òª°²×°JVMÑ¡Ïî¡£
°²»ÕлªµçÄÔѧУרҵְҵ¹æ»®Ê¦ÎªÄãÌṩ¸ü¶à°ïÖú¡¾ÔÚÏß×Éѯ¡¿
Äã¶ÔOracleÊý¾Ý¿â×Ö·û¼¯¾¿¾¹ÈÏʶ¶àÉÙ£¿
2010-01-17 10:59:56 ×÷Õß: À´Ô´:
ÉÏһƪ£º½â¶ÁSQL Server2008µÄÐÂÓï¾äMERGE
ÏÂһƪ£ºÄã¶ÔOracleÊý¾Ý¿â×Ö·û¼¯¾¿¾¹ÈÏʶ¶àÉÙ£¿