标签:style blog io ar color os 使用 sp 数据
为什么要修改字符集?
使用用户system,通过sqlplus程序连接到Oracle数据库,输入以下命令,查看字符集:
SQL> select userenv(‘language‘) from dual; USERENV(‘LANGUAGE‘) ---------------------------------------------------- AMERICAN_AMERICA.AL32UTF8 SQL>
我们可以看到查到的字符集为“AMERICAN_AMERICA.AL32UTF8”,而国内数据库常用的字符集为“ZHS16GBK”。
例如:某字段在企业版中定义的为varchar2(4),保存数据为‘‘田田‘‘,则导入oraclexe时,该字段定义仍为varchar2(4),但数据‘‘田田‘‘就需要占用6个字符长度,出现的问题如下所示:
IMP-00019: 由于 ORACLE 错误 12899 而拒绝行
IMP-00003: 遇到 ORACLE 错误 12899
ORA-12899: 列 "TEST"."TEST_TIANYC"."A" 的值太大 (实际值: 6, 最大值: 4)
此时就需要按照以下操作说明进行操作后即可解决问题。
操作说明:
开始菜单-->所有程序-->Oracle Database 11g Express Edition-->运行SQL命令行,启动sqlplus程序。
由于sqlplus程序不支持直接在程序窗口中右键,进行复制、粘贴等操作,所以博主采用的是在运行命令行中启动sqlplus程序。
开始菜单-->运行-->输入cmd,并回车-->打开cmd命令行。
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\Candy>C:\oraclexe\app\oracle\product\11.2.0\server\bin\sqlplus.exe /nolog
SQL*Plus: Release 11.2.0.2.0 Production on 星期三 11月 26 12:11:59 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> connect system as sysdba
输入口令:
已连接。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 644468736 bytes
Fixed Size 1385488 bytes
Variable Size 192941040 bytes
Database Buffers 444596224 bytes
Redo Buffers 5545984 bytes
数据库装载完毕。
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 internal_use ZHS16GBK;
数据库已更改。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 644468736 bytes
Fixed Size 1385488 bytes
Variable Size 192941040 bytes
Database Buffers 444596224 bytes
Redo Buffers 5545984 bytes
数据库装载完毕。
数据库已经打开。
SQL> select userenv(‘language‘) from dual;
USERENV(‘LANGUAGE‘)
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
SQL>
此时,再进行数据导入或者在字段类型为varchar2(4)的字段插入“田田”,就不会报错了。
修改字符集后可能导致navicat连不上Oracle数据库,请在菜单-->工具-->选项-->其他-->OCI中将OCI library(oci.dll)的值修改为
C:\oraclexe\app\oracle\product\11.2.0\server\bin\oci.dll,点击确定后,重启navicat即可。
Oracle Database 11g Express Edition修改字符集
标签:style blog io ar color os 使用 sp 数据
原文地址:http://www.cnblogs.com/Candies/p/4122960.html