乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      ORACLE 修改字符集

       昵稱(chēng)5963617 2011-02-25

      EXP遇到ORA-06552錯(cuò)誤的解決( PLS-553: character set name is not recognized)2009-05-08 16:51有一個(gè)建好的數(shù)據(jù),Oracle 9.2.0.4 for linux,字符集是缺省的WE8ISO8859P1,沒(méi)有改成ZHS16GBK. 庫(kù)中暫時(shí)沒(méi)有任何數(shù)據(jù)。

      由于字符集不是超集/子集關(guān)系,無(wú)法通過(guò)ALTER DATABASE CHARACTER SET修改字符集。

      當(dāng)時(shí)時(shí)間緊張,就沒(méi)有重建數(shù)據(jù)庫(kù),而是直接修改prop$表,將NLS_CHAR字符集改為ZHS16GBK。
      update props$ set value$='ZHS16GBK' where name='NLS_CHARACTERSET';
      重啟后建表、insert數(shù)據(jù),一切正常。。。直到今天要exp出數(shù)據(jù)。

      執(zhí)行 exp userid=system owner=username ... 報(bào)錯(cuò)!
      即將導(dǎo)出指定的用戶(hù)…
      . 正在導(dǎo)出 pre-schema 過(guò)程對(duì)象和操作
      . 正在導(dǎo)出用戶(hù) USERNAME 的外部函數(shù)庫(kù)名稱(chēng)
      . 導(dǎo)出 PUBLIC 類(lèi)型同義詞
      EXP-00008: 遇到 ORACLE 錯(cuò)誤 6552
      ORA-06552: PL/SQL: Compilation unit analysis terminated
      ORA-06553: PLS-553: character set name is not recognized
      EXP-00000: 導(dǎo)出終止失敗

      隱隱感覺(jué)與當(dāng)時(shí)的字符集設(shè)置有關(guān)。http://www./special/NLS_CHARACTER_SET_03.htm: “正式修改字符集時(shí),Oracle至少需要更改12張數(shù)據(jù)字典表,而這種直接更新props$表的方式只完成了其中十二分之一的工作,潛在的完整性隱患是可想而知的。”


      但是如何解決呢?后來(lái)搜索到未公開(kāi)的INTERNAL_USE用法,強(qiáng)制完成字符集一致化,解決了問(wèn)題。


      首先,確認(rèn)字符集是否修改的不徹底。
      SELECT DISTINCT (NLS_CHARSET_NAME(CHARSETID)) CHARACTERSET,
      DECODE(TYPE#, 1,
      DECODE(CHARSETFORM, 1, 'VARCHAR2', 2, 'NVARCHAR2', 'UNKOWN'),
      9,
      DECODE(CHARSETFORM, 1, 'VARCHAR', 2, 'NCHAR VARYING', 'UNKOWN'),
      96,
      DECODE(CHARSETFORM, 1, 'CHAR', 2, 'NCHAR', 'UNKOWN'),
      112,
      DECODE(CHARSETFORM, 1, 'CLOB', 2, 'NCLOB', 'UNKOWN')) TYPES_USED_IN
      FROM SYS.COL$
      WHERE CHARSETFORM IN (1, 2)
      AND TYPE# IN (1, 9, 96, 112);

      如果上面的查詢(xún)的確顯示有多個(gè)字符集的設(shè)定,則進(jìn)行如下處理:
      SHUTDOWN IMMEDIATE;
      STARTUP MOUNT;
      ALTER SYSTEM ENABLE RESTRICTED SESSION;
      ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
      ALTER SYSTEM SET AQ_TM_PROCESSES=0;
      ALTER DATABASE OPEN;

      COL VALUE NEW_VALUE CHARSET
      SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';
      COL VALUE NEW_VALUE NCHARSET
      SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_NCHAR_CHARACTERSET';

      --INTERNAL_USE是沒(méi)有寫(xiě)在文檔中的參數(shù),用以強(qiáng)制完成字符集一致化
      ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET;
      ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET;

      SHUTDOWN IMMEDIATE;
      STARTUP;
      -- 再次啟動(dòng)數(shù)據(jù)庫(kù)一遍
      SHUTDOWN IMMEDIATE;
      STARTUP;

      至此,EXP問(wèn)題得到了解決。

      注意:修改字符集只是修改了數(shù)據(jù)字典,并沒(méi)有對(duì)數(shù)據(jù)進(jìn)行字符集轉(zhuǎn)換!
       

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多