oracle向mysql移植
有一些没有使用数据库中间件的软件可能会碰到在不同的应用场景需要用不同的数据库,这样可能就需要将数据库代码做移植,我这里整理了一些从oracle到mysql的移植过程中的注意事项:
1。sequence生成
可以用类似的东西来做,如下:
create table myseq ( seq varchar(8));
insert into myseq values('0');
update myseq set seq = last_insert_id(seq+1);
select last_insert_id();
这东西完全跟oracle的sequence一致。即使在update之后,select之前有其它session也update了,本session得到的,仍然是自己update的那一个值。
2。sysdate转为sysdate()
3.substr装换,基本不需要转换
4。nvl转换为ifnull
5。数字转换为字符串的to_char函数不用,直接用即可,不用函数转换
6。日期格式的to_char转换为date_format
oracle: to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
mysql: select date_format(now(),'%Y-%m-%d %H-%i-%S')
7.to_date()装换,删除转换,mysql支持自动转换
8。decode()转换,
case when flag=0 then '成功' else '失败' end
9。rownum转换,分页转换
querySql = "select * from ( select rownum rnm, a.* from ( " + strQuery
// + ") a where rownum <= " + getPageEndRow()
//+ ") where rnm > " + getPageStartRow();
转换为:
querySql = "select * from ( select 1 rnm, page_a.* from ( " + strQuery
+ ") page_a LIMIT " + getPageStartRow() + "," + getPageSize() + " ) select_page";
10。from子查询转换,为子查询定义别名
select count(*) from (
select a.login_no,a.LOGIN_NAME,a.EXPIRE_TIME,b.orgname,a.CONTRACT_PHONE,a.info_flag,a.login_level,a.group_id from DLOGINMSG a left outer join dchngroupinfo b on a.group_id=b.orgno where 1=1 and a.login_no like '%test%'
) subselect
相关文档:
oracle表空间操作详解
1
2
3作者: 来源: 更新日期:2006-01-04
5
6
7建立表空间
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
导出 EXP USER/PASSWORD@ODBC FILE=C:\***.DMP ROWS=N //不保存数据;
导出 EXP USER/PASSWORD@ODBC FILE=C:\***.DMP //保存数据;
导出 EXP USER/PASSWORD@ODBC FILE=C:\***.DMP full=y //全部导出;
导入 imp user/password@odbc file=c:\***.dmp full=y ignore=y;
Oracle数据导入导出imp/exp就相 ......
// 建立表空间(指定文件路径)。
create TABLESPACE EAS_D_sptcc0_STANDARD DATAFILE 'F:\oracledb\EAS_D_sptcc0_STANDARD.dbf' size 10000M EXTENT MANAGEMENT local;
// 删除表空间(指定文件路径)。
DROP TABLESPACE temp_data INCLUDING CONTENTS AND DATAFILES;
// 建立临时表空间。
CREATE TEMPORARY TABLESPA ......
数据库存储中的数据类型与大小各异。有些地方只存储数字类型,有些只存储文本类型,有些二者而兼之。而很多数据库支持各种专用类型:日期和时间类型,二进制字符类型以及布尔类型。选择数据类型与数据相匹配是数据库设计中最为重要的部分,因为这种类型将会影响到RDBMS的效率与性能。所以,对RDBMS的数据类型选择应 ......
我们用Master-Slaves架构解决了读压力比较大的应用,而我们用Master-Master架构解决了单点服务问题,提供了系统的可用性。但是有时我们面临巨大的读数据压力,特别是web系统,又需要解决单点服务的问题,为应用提供足够高的可用性。这时我们就需要将这两种架构结合起来。这就是Master-Master-Slaves架构。结构图如下
Maste ......