oracle字符集(转)
转自:http://hi.baidu.com/66_com
引言
我现在所在的项目组需要把mysql的数据处理后导入到oracle数据库中,在此期间遇到了数据中文乱码问题。下面是我对这个问题的总结。
1、linux操作系统,mysql,oracle安装时字符集的选择。
我的建议是这三者的字符集保持一致,全为utf-8或gdk或gb2312。如果有特殊要求,三者不同也没有关系
我的建议是
Oracle -------àutf-8 ,gb2312,gbk
Linux---------àgbk,gb2312
Mysql--------àlatin1(默认)
A、Linux在安装的时候会给你一个选项让你选择安装的字符集。
B、Oracle安装过程中有一个“常见字符集”的选项。
C、Mysql安装时则要选择 二进制安装包,在configure使加上参数--with-charset 和 --with-collation ,例如:
./configure --with-charset=utf-8
Mysql 默认字符集为latin1,支持中文,所以可以一半选择默认安装即可。
2、字符集更改
如果你的字符集进行不正当的配置,则可以通过下面的方法进行更正。
2.1 linux操作系统字符集更改
在/etc/sysconfig/i18n
通过以下的改变来修改系统的本地化设置:
ja_JP.eucJP 变为 ja_JP.UTF-8
ko_KR.eucKR 变为 ko_KR.UTF-8
zh_CN.GB18030 变为 zh_CN.UTF-8
zh_TW.Big5 变为 zh_TW.UTF-8
使用在 ~/.i18n 中的本地化设置的用户应该在默认的情况下升级到使用 UTF-8 码。
iconv 工具可以被用来把使用原始编码(例如 eucJP, eucKR, Big5, or GB18030)的文件转换成为UTF-8 编码:
iconv -f <native encoding> -t UTF-8 <filename> -o <newfilename>
##################################################
以下是的我的Redhat Enterprise Linux AS 4中/etc/sysconfig/i18n的内容:
##################################################
LANG="zh_CN.UTF-8"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"
##################################################
更改后关闭当前端口重新登入即可。
2.2 mysql数据库字符集的更改
现在网上有三种解决方法
查看Mysql字符集命令
show variables like'character_set%';
A、重新编译安装,见mysql安装部分内容
B、修改/etc/my.cnf文件中的default-character-set=gbk #或gb2312,big5,utf8. 然后重新启动mysql. (用rpm包安装的mysql没有my.cnf文件,可以从其他数据库拷贝一个,但是
相关文档:
二、使用Programs
在论坛中偶尔见过有人讨论如何在ORACLE中执行操作系统命令,或是ORACLE数据库外的应用。应该说在9i及之前的版本中,虽然说并非完全无法实现(其实还是有多种方式能够变相实现的),不过复杂的实现方式让DBA使劲了力,伤透了心,费劲了事儿。
进入10g版本之后,就完全不必如此费神,因为有了DBMS ......
前面一直尝试oracle的联机备份都没有成功,出现了0 file(s) copied,今天终于发现了问题所在,特低级的错误就是,原来Host copy语句要在运行命令窗口下运行才会生效,前面一直都太习惯在pl/sql中进行操作了。
oracle9i联机备份的过程
sql>alter tablespce mytp begin backup;
sql>host copy f:\oracle\oradata\myt ......
创建job
job是什么呢? 简单的说就是计划(schedule)加上任务说明. 另外还有一些必须的参数.
这里提到的"任务"可以是数据库内部的存储过程,匿名的PL/SQL块,也可以是操作系统级别的脚本.
可以有两种方式来定义"计划":
1) 使用DBMS_SCHDULER.CREATE_SCHEDULE 定义一个计划;
2) 调用DBMS_SCHDULER.CREATE_JOBE过程直接指定 ......
带UNION ALL物化视图的快速刷新
1. 定义的查询的union all操作必须在最顶等级(查询重写后)
2. 物化视图日志指定rowid和including new values
3. 如果表设涉及到一个大量的insert或者直接路径加载,deletes,update,指定sequencea
4. from列表 ......