亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

oracle 11g 更改字符集,9i導入11g 出現 ORACLE

系統 1875 0

工作需要,安裝裝了oracle 11g,在導入其他機器上的備份數據的時間,發生一個錯誤:

IMP-00019: 由于 ORACLE 錯誤 12899 而拒絕行
IMP-00003: 遇到 ORACLE 錯誤 12899
ORA-12899: 列 "ZHENG"."D_DIC"."DICEXPLAIN" 的值太大 (實際值: 140, 最大值: 100)

這個數據表結構是直接注入的,根本不會這樣子的啊。后來在網上查了才知道原來是字符集的問題:

在日志文件里,開始導入時候有這樣一個提示:"

已經完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的導入
導入服務器使用 AL32UTF8 字符集 (可能的字符集轉換)

"原來在我的Windows server 2003系統上安裝oracle,默認的字符集跟操作系統一致,是AL32UTF8。

AL32UTF8里,一個漢字是占用3個字符位,而一般我們用Windows XP中默認的是ZHS16GBK ,一個漢字用2個字符位。這樣,直接導入數據就直接溢出了。

在網上找到一個修改字符集的方法:


SQL> conn sys/sys as sysdba;
SQL> shutdown immediate;
SQL> STARTUP MOUNT;
SQL> ALTER SESSION SET SQL_TRACE=TRUE;
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> Shutdown immediate;
SQL> startup;oracle數據庫的字符集更改
A、oracle server端字符集查詢
select userenv(‘language’) from dual
其中NLS_CHARACTERSET 為server端字符集
NLS_LANGUAGE 為 server端字符顯示形式
B、查詢oracle client端的字符集
$echo $NLS_LANG
如果發現你select 出來的數據是亂碼,請把client端的字符集配置成與linux操作系統相同的字符集。如果還是有亂碼,則有可能是數據庫中的數據存在問題,或者是oracle服務端的配置存在問題。
C、server端字符集修改
*****************************************************************
* 更改字符集步驟方法(WE8ISO8859P1 --> ZHS16GBK)??????????? *
*****************************************************************
SQL>
將數據庫啟動到RESTRICTED模式下做字符集更改:
SQL> conn /as sysdba
Connected.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size?????????????????? 451684 bytes
Variable Size???????????? 201326592 bytes
Database Buffers?????????? 33554432 bytes
Redo Buffers???????????????? 667648 bytes
Database mounted.
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
System altered.
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
System altered.
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
System altered.
SQL> alter database open;
Database altered.
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
ALTER DATABASE CHARACTER SET ZHS16GBK
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
提示我們的字符集:新字符集必須為舊字符集的超集,這時我們可以跳過超集的檢查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
Database altered.
SQL> select * from v$nls_parameters;

19 rows selected.
重啟檢查是否更改完成:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size?????????????????? 451684 bytes
Variable Size???????????? 201326592 bytes
Database Buffers?????????? 33554432 bytes
Redo Buffers???????????????? 667648 bytes
Database mounted.
Database opened.
SQL> select * from v$nls_parameters;

19 rows selected.
我們看到這個過程和之前ALTER DATABASE CHARACTER SET操作的內部過程是完全相同的,也就是說INTERNAL_USE提供的幫助就是使
Oracle數據庫繞過了子集與超集的校驗.
這一方法在某些方面是有用處的,比如測試;應用于產品環境大家應該格外小心,除了你以外,沒有人會為此帶來的后果負責:
結語(我們不妨再說一次):
對于DBA來說,有一個很重要的原則就是:不要把你的數據庫置于危險的境地!
這就要求我們,在進行任何可能對數據庫結構發生改變的操作之前,先做有效的備份,很多DBA沒有備份的操作中得到了慘痛的教訓
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D、client端字符集修改
在 /home/oracle與 /root用戶目錄下的.bash_profile中
添加或修改 export NLS_LANG="AMERICAN_AMERICA.UTF8" 語句
關閉當前ssh窗口。
注意 NLS_LANG變量一定要配置正確否則會引起sqlplus 失效 本篇文章來源于:開發學院 http://edu.codepub.com ?? 原文鏈接: http://edu.codepub.com/2010/0601/23155.php

oracle 11g 更改字符集,9i導入11g 出現 ORACLE 錯誤 12899 處理


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久9久9精品视频在线观看 | 一级毛片a免费播放王色 | 91精品国产福利在线观看性色 | 操人视频网站 | 老司机午夜影院 | 天天操操操操 | 一二三区 | 久久国产乱子伦精品免 | 亚洲区视频在线观看 | 日韩黄色录像 | 亚洲高清综合 | 99热亚洲| 久久久久国产精品免费免费不卡 | 羞羞视频免费观看网站 | 夜夜躁日日躁狠狠久久 | 夜色福利一区二区三区 | 狠狠色丁香久久综合五月 | 狠狠综合久久久久尤物丿 | 色综合a怡红院怡红院首页 色综合h | 99在线免费观看 | 日韩欧美成人免费中文字幕 | 亚洲午夜一区二区三区 | 国产成人精品一区二三区在线观看 | 国产 麻豆 欧美亚洲综合久久 | 91私拍| 久久99精品综合国产首页 | 亚洲综合伊人色一区 | ww亚洲ww在线观看国产 | 成人一级片在线观看 | 国产精品久久久久久亚洲伦理 | 逆天至尊免费看229集 | 欧美国产日韩精品 | 亚洲精品αv一区二区三区 亚洲精品爱爱久久 | 农村女人十八毛片a级毛片 农村三级孕妇视频在线 | 97久久免费视频 | 一本到在线观看视频不卡 | 特级毛片在线大全免费播放 | 四虎2020 | 欧美色综合 | 天天透天天操 | 狠狠色狠狠色 |