oracle改变字符编码(ORA-12899问题)
来源:互联网 发布:人工智能是什么东西 编辑:程序博客网 时间:2024/06/05 04:59
在导入数据库时,出现ORA-12899。这个问题是字符集不一致引起的。
查看一下源数据库的字符编码:
select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';结果是ZHS16GBK,而目标数据库是AL32UTF8。
中文在UTF-8中占3个字节,ZHS16GBK中占2个字节,所以会出现ORA-12899
解决办法就是修改目标数据库的字符编码。
########################################################################
首先,以sysdba身份登录sqlplus。
开始-->运行-->cmd,之后输入:"sqlplus system/system@orcl as sysdba".
如果不是本地实例,需要在实例名前加IP,例如sqlplus system/system@192.168.0.1/orcl as sysdba。
或者在开始中找到sqlplus,打开后会提示你输入账号和密码。
如果是SYSDBA账号,在密码中就需要输入system as sysdba(密码后要加as sysdba).
如果你以一个账号已经登录,想换一个账号,就在sql命令中输入 conn system/system as sysdba.
修改ORACLE数据库的编码,源数据库ZHS16GBK,目标数据库AL32UTF8,
从源数据库导出的数据在导入到目标数据库会有报错。
所以要把目标数据库也改成ZHS16GBK。
查看数据库的编码sql:
select * from nls_database_parameters
where parameter ='NLS_CHARACTERSET';
下面是步骤:
进入sqlplus
SQL> 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 internal_use ZHS16GBK;
SQL> shutdown immediate;
SQL> startup
//下面是导入数据库的步骤
--需要创建用户的表空间
CREATE TABLESPACE TABLESPACE_DB
LOGGING
DATAFILE 'D:\TEST_DATA01.DBF '
SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;
-- 创建用户
create user UUU
identified by UUUPass
default tablespace TABLESPACE_DB
temporary tablespace TEMP
profile DEFAULT;
--修改密码
ALTER USER UUU IDENTIFIED BY UUUNewpass;
-- 授权
grant connect to UUU;
grant dba to UUU;
grant resource to UUU;
grant unlimited tablespace to UUU;
退出oracle客户端,进入cmd。
imp UUU/UUUNewpass@orcl full=y file=d:\direct20120109.dmp
或
imp UUU/UUUNewpass@orcl file=d:\direct20120109.dmp
###############下面是实际过程##################
最后改变结果已经显示是ZHS16GBK,成功!
- oracle改变字符编码(ORA-12899问题)
- Oracle字符编码问题
- 改变Oracle数据库字符编码这
- 改变数据库字符编码
- Emacs改变字符编码
- Oracle字符编码问题快速解决
- oracle 插入汉字时字符编码问题
- oracle中一些字符编码的问题
- 关于oracle中ora-0091 无效字符问题
- 修改oracle字符编码
- Oracle 修改字符编码
- oracle 修改字符编码
- oracle 字符编码修改
- oracle ORA-00911:无效字符
- 【ORACLE】ORA-00911 无效字符
- Oracle ORA-01078 ORA-01565 ORA-17503 ORA-15077问题的解决(及ORA-15100和ora-1031)
- Oracle 服务器 客户端 US7ASCII、 UTF8字符编码问题
- Oracle改变编码为UTF8
- Flash builder 4内存优化之java heap space解决办法
- maven常见问题问答
- 清除SVN隐藏目录
- CollectionUtils select方法 详解 用途~~~
- HTML嵌套规则
- oracle改变字符编码(ORA-12899问题)
- vi/vim 常用命令
- JEECG
- 日期范围选择公用函数,传参为选择的textField
- C# 调用Windows API(1)
- 多线程实例之简单的卖票程序 ------记录与毕向东老师视频
- redis 集群设计一种方案
- Maven(一)Maven及插件安装
- PB编程框架、PB经典界面、PB开发平台