Oracle11g字符集AL32UTF8修改为ZHS16GBK详解【转】
——————感谢作者,确实解决了问题。分享下,希望帮到更多人
此问题发生在数据库迁移过程中。源数据库:自己笔记本上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详解【转】的更多相关文章
- Oracle11g字符集AL32UTF8修改为ZHS16GBK详解
此问题发生在数据库迁移过程中.源数据库:自己笔记本上win7 64位系统的oracle11g个人版,字符集ZHS16GBK :目标数据库,HP的sqlserver2008 系统 64位数据库服务器,字 ...
- 修改字符集AL32UTF8修改为ZHS16GBK详解
登陆sqlplus,在命令行输入 sqlplus sys/sys as sysdba;//登陆sqlplus SQL>SHUTDOWN IMMEDIATE; SQL>STARTUP MOU ...
- Mysql修改表结构详解
添加字段: alter table `user_movement_log`Add column GatewayId int not null default 0 AFTER `Regionid` (在 ...
- Centos时间查看修改命令date详解
1.查看.修改Linux时区与时间 一.linux时区的查看与修改 1,查看当前时区date -R 2,修改设置时区方法1:tzselect 方法2:仅限于RedHat Linux 和 CentOSt ...
- Oracle 11g修改字符集AL32UTF8为ZHS16GBK
oracle11g更改字符集AL32UTF8为ZHS16GBK当初安装oracle的时候选择的默认安装,结果字符集不是以前经常用的16GBK,要改字符集,从网上找到了方法并试了一下,果然好用! 具体如 ...
- MySQL字符集详解
Reference: https://www.cnblogs.com/wcwen1990/p/6917109.html MySQL字符集详解 一.字符集和校验规则 字符集是一套符合和编码,校验规 ...
- ORCALE字符集AL32UTF8和ZHS16GBK的互相转换
AL32UTF8转成ZHS16GBK cmd中输入“SQLPLUS”,回车,然后再在用户名下输入“SYS AS SYSDBA”,回车 密码后面输入“SYS”,回车.这里输入密码是隐式的,所以看不见,只 ...
- Linux命令:修改文件权限命令chmod、chgrp、chown详解
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权 限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而 ...
- ASP.NET 操作Cookie详解 增加,修改,删除
ASP.NET 操作Cookie详解 增加,修改,删除 Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密).定义于RFC2109.它 ...
随机推荐
- 【转】Android Studio下加入百度地图的使用 (一)——环境搭建
最近有学 生要做毕业设计,会使用到定位及地图信息的功能,特此研究了一下,供大家参考,百度定位SDK已经更新到了5.0,地图SDK已经更新到了3.5,但是在 AndroidStudio中使用还是存在一些 ...
- MySQL5.7 修改密码
MySQL5.7 修改密码 mysql> update mysql.user set authentication_string = password('新密码') where user='用户 ...
- IT人创业之融资方式 - 创业与投资系列文章
对于想要创业的IT人,最基本的就是需要资金和团队.笔者在经历了自己制定的职业道路之后(见文:IT从业者的职业道路(从程序员到部门经理) - 项目管理系列文章),进行过投资(见文:IT人经济思维之投资 ...
- spring mvc生成注册验证码
通过Spring MVC为系统添加验证码 1:布局登陆页面,用户名,密码,填写验证码的文本框,及验证码的图片及点击换图 <%@ taglib prefix="c" uri=& ...
- Linux启动报错missing operating system
用UltraISO制作了一个Red Hat Enterprise Linux Server release 5.7系统的U盘启动盘,然后在一台PC上安装,由于安装过程中在干别的事情,有些选项没有细看. ...
- SQL Server跨库查询
方式一: 语句 SELECT * FROM 数据库A.dbo.表A a, 数据库B.dbo.表B b WHERE a.field=b.field "DBO"可以省略 如 SELEC ...
- 查询表结构sql
THEN obj.name ELSE '' END AS 表名, col.colorder AS 序号, col.name AS 列名, ISNULL(ep.value, N'') AS 列说明, t ...
- js Ajax跨域调用JSON并赋值全局变量
//跨域调用JSON <script type="text/javascript"> function _callback(obj) { alert(obj); } j ...
- 《Java JDK7 学习笔记》课后练习题1
1.()组织负责监督审查Java相关技术规格的演进. A. JCP B. Apache C. EU D. W3C 2.Java技术规格必须以()正式文件提交审查. A. RFC B. JSR C. I ...
- Linux简介及常用命令使用3--vi编辑器
1.进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 [新建文件]vi +n filename :打开文件,并将光标置于第n行首 [比如:某个shell报错的行数时使用] ...