此问题发生在数据库迁移过程中。源数据库:自己笔记本上win7 64位系统的oracle11g个人版,字符集ZHS16GBK ;目标数据库,HP的sqlserver2008 系统 64位数据库服务器,字符集AL32UTF8 。

今天下午在部署HP的一台数据库服务器时,装的oracle11g 企业版默认字符集为AL32UTF8,

而我本地电脑装的oracle11g 个人版数据库字符集server端默认是ZHS16GBK,所以在我把我本机导出的数据库.dmp文件导入到Hp的数据库时,报

imp错误并且错误描述信息为中文乱码。然后经过我上网查阅资料得知 如果要解决乱码问题必须满足下面条件:

目标数据库的服务端和客户端字符集以及要从我本地导入源数据库的dmp文件中的字符集格式必须一样。而我本地源数据库字符集是ZHS16GBK,目标服务器端字符集是AL32UTF8 ,显然不满足以上条件。

然后我首先尝试下面方式更改HP服务器数据库字符:

尝试方法一:在sys/sys 下面执行下面语句:(失败)

注:SQL> alter database CHARACTER SET ZHS16GBK;
alter database CHARACTER SET ZHS16GBK

结果报下面错误:
ERROR 位于第 1 行:
ORA-12712: 新字符集必须为旧字符集的超集。

注:超集解释:如果s1集合包含s2集合中的每一个元素,并且s1集合中有可能包含s2集合中不含有的元素时,那么称s1是s2的超级。说明AL32UTF8包含ZHS16GBK。

尝试方法二:用scott/tiger 登陆 sqlplus 然后connect sys/sys as sysdba,然后输入命令即可,文中标红的请用自己设置的密码。(此方法测试后成功!)

然后在sqlplus界面依次执行以下sql语句:

若此时数据库服务器已启动,则先执行SHUTDOWN IMMEDIATE命令关闭数据库服务器,然后执行以下命令:注:每条sql语句都会有相应的提示,请输入时务必仔细。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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>ALTER DATABASE national CHARACTER SET INTERNAL ZHS16GBK;

这一行不起作用,执行后出错ORA-00933: SQL 命令未正确结束,不过执行上一行命令已经生效,其他文章里未提到本行。

1
2
3
4
SQL>SHUTDOWN IMMEDIATE;
 
 
SQL>STARTUP

最后重启oracle11g监听和服务,重新登录PL/SQL developer ,

执行select userenv('language') nls_lang from dual; 发现目标数据库字符集如下,已经正确修改为SIMPLIFIED 。CHINESE_CHINA.ZHS16GBK。

NLS_LANG

----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK

然后再执行相应的imp ldpssts/ldpssts@orcl fromuser=lspss touser=ldpssts file=D:\imp\ldpssts.dmp log=D:\imp\ldpssts.log ,导入执行成功。

Oracle11g字符集AL32UTF8修改为ZHS16GBK详解的更多相关文章

  1. Oracle11g字符集AL32UTF8修改为ZHS16GBK详解【转】

    ------感谢作者,确实解决了问题.分享下,希望帮到更多人 此问题发生在数据库迁移过程中.源数据库:自己笔记本上win7 64位系统的oracle11g个人版,字符集ZHS16GBK :目标数据库, ...

  2. 修改字符集AL32UTF8修改为ZHS16GBK详解

    登陆sqlplus,在命令行输入 sqlplus sys/sys as sysdba;//登陆sqlplus SQL>SHUTDOWN IMMEDIATE; SQL>STARTUP MOU ...

  3. Mysql修改表结构详解

    添加字段: alter table `user_movement_log`Add column GatewayId int not null default 0 AFTER `Regionid` (在 ...

  4. Centos时间查看修改命令date详解

    1.查看.修改Linux时区与时间 一.linux时区的查看与修改 1,查看当前时区date -R 2,修改设置时区方法1:tzselect 方法2:仅限于RedHat Linux 和 CentOSt ...

  5. Oracle 11g修改字符集AL32UTF8为ZHS16GBK

    oracle11g更改字符集AL32UTF8为ZHS16GBK当初安装oracle的时候选择的默认安装,结果字符集不是以前经常用的16GBK,要改字符集,从网上找到了方法并试了一下,果然好用! 具体如 ...

  6. MySQL字符集详解

    Reference:  https://www.cnblogs.com/wcwen1990/p/6917109.html MySQL字符集详解   一.字符集和校验规则 字符集是一套符合和编码,校验规 ...

  7. ORCALE字符集AL32UTF8和ZHS16GBK的互相转换

    AL32UTF8转成ZHS16GBK cmd中输入“SQLPLUS”,回车,然后再在用户名下输入“SYS AS SYSDBA”,回车 密码后面输入“SYS”,回车.这里输入密码是隐式的,所以看不见,只 ...

  8. Linux命令:修改文件权限命令chmod、chgrp、chown详解

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权 限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而 ...

  9. ASP.NET 操作Cookie详解 增加,修改,删除

    ASP.NET 操作Cookie详解 增加,修改,删除 Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密).定义于RFC2109.它 ...

随机推荐

  1. 【无私分享:ASP.NET CORE 项目实战(第四章)】Code First 创建数据库和数据表

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 本章我们来介绍下Asp.net Core 使用 CodeFirst 创建数据库和表,通过 控制台 和 dotnet ef 两种 ...

  2. nginx php-fpm 输出php错误日志

    nginx是一个web服务器,因此nginx的access日志只有对访问页面的记录,不会有php 的 error log信息. nginx把对php的请求发给php-fpm fastcgi进程来处理, ...

  3. 【转】OpenCV 移植学习--EMCV

    在Opencv论坛有好些这方面的帖子,主要看了一下几个牛人的帖子,比如论坛管理员于博士Shiqi Yu:(EMCV:可在DSP上运行的OpenCV)http://www.opencv.org.cn/f ...

  4. 《连载 | 物联网框架ServerSuperIO教程》- 12.服务接口的开发,以及与云端双向交互

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  5. C#通过反射给对象赋值

    class Program { static void Main(string[] args) { UserSearchRequest model = new UserSearchRequest() ...

  6. ArcGIS Engine开发之地图文档保存

    在对地图文档进行修改后,经常需要对其进行保存.地图文档的保存有直接保存和另存为两种方式.这里的地图文档的修改指的是修改地图文档文件记录信息,不是对空间数据的编辑. 1.地图文档保存 具体实现的思路: ...

  7. Swift3 - String 字符串、Array 数组、Dictionary 字典的使用

    Swift相关知识,本随笔为 字符串.数组.字典的简单使用,有理解.使用错误的地方望能指正. ///************************************************** ...

  8. 【代码笔记】iOS-验证手机号,邮箱,车牌号是否合法

    一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...

  9. lucky 的 时光助理

    2017年的lucky小姐,厌倦了现在的工作,她觉得这些的工作对于她而言不具备挑战性,她在迷茫春节过后该如何选择, 这里是距她走出校门整整一年的时光. lucky小姐从开发走向了实施,目的是想周游这个 ...

  10. Java多线程中的死锁问题

    Java程序基本都要涉及到多线程,而在多线程环境中不可避免的要遇到线程死锁的问题.Java不像数据库那么能够检测到死锁,然后进行处理,Java中的死锁问题,只能通过程序员自己写代码时避免引入死锁的可能 ...