修改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也可以得到它對應的字符集。
直接修改dmp檔案的第2第3位元組的內容就可以‘騙’過oracle的檢查。這樣做理論上也僅是從子集到超集可以修改,但很多情況下在沒有子集和超集關係的情況下也可以修改,我們常用的一些字符集,如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即可。
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也可以得到它對應的字符集。
直接修改dmp檔案的第2第3位元組的內容就可以‘騙’過oracle的檢查。這樣做理論上也僅是從子集到超集可以修改,但很多情況下在沒有子集和超集關係的情況下也可以修改,我們常用的一些字符集,如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即可。
小結:
1,小檔案dmp可以直接用ultraedit開啟,修改第2,3個位元組為目標資料庫字符集的字符集編碼(這個編碼是16進位制),第2,3個位元組對應ultraedit開啟第一行的第1,2列(從0列開始排)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-666071/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 查詢dmp檔案(exp方式匯出) 字符集
- 識別exp匯出檔案所用的字符集
- 檢視dmp檔案是exp還是expdp匯出來的
- 如何確定一個dmp檔案是exp匯出的還是expdp匯出的?
- 如何根據exp匯出檔案確定client端匯出時的字符集client
- 檢視較小dmp檔案,匯出時客戶端的字符集客戶端
- exp匯出檔案時 字符集設定問題
- oracle匯出dmp檔案的2種方法Oracle
- 【ASK_ORACLE】一眼判斷出Oracle的dmp檔案是用expdp匯出還是exp匯出Oracle
- 雙位元組中文字符集匯出的DMP檔案匯入UTF8字符集
- 從Export DMP檔案看匯出字符集(上)Export
- 從Export DMP檔案看匯出字符集(下)Export
- 【exp/imp】將US7ASCII字符集的dmp檔案匯入到ZHS16GBK字符集的資料庫中ASCII資料庫
- exp 分檔案大小匯出
- 抽取exp/expdp匯出檔案頭的資訊
- oracle匯入dmp檔案Oracle
- dos下的exp匯出日期檔名樣式的檔案
- plsql Oracle匯入dmp檔案SQLOracle
- oracle匯入dmp檔案的2種方法Oracle
- exp 匯出時帶時間格式的檔案設定
- Oracle exp dmp包檔案轉化為insert語句,extract dmp to sqlfileOracleSQL
- exp和expdp的filesize引數的使用--匯出多個檔案
- dmp檔案的做成
- EXP直接匯出壓縮問津,IMP直接匯入壓縮檔案的方法
- oracle匯入dmp檔案win10怎麼操作_win10系統oracle如何匯入dmp檔案OracleWin10
- exp/imp匯出匯入工具的使用
- Oracle exp/imp匯出匯入工具的使用Oracle
- oracle資料的匯入匯出imp/expOracle
- Oracle11g資料庫exp產生的dmp檔案,進行imp匯入時,ORA-01400的處理Oracle資料庫
- MySQL匯入匯出檔案檔案MySql
- Oracle如何使用spool匯出utf8字符集的文字檔案Oracle
- EasyExcel完成excel檔案的匯入匯出Excel
- 如何獲取expdp出來的dmp檔案中的DDL語句
- 【EXP/IMP】使用EXP /IMP工具“模糊”匯出和匯入
- 資料匯入匯出EXP/IMP
- exp/imp匯出匯入資料
- Oracle匯入(imp )與匯出(exp )Oracle
- 【ORACLE 匯入匯出】exp 錯誤Oracle