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
相关文档:
在Query Rewrite中大家看到这个技术离不开一样东西, 实体化视图, 简称MVIEW. 这是Oracle在8i中首先推出的技术, MVIEW除了在Query Rewrite中使用外, 还在Master - Slave复制中有很重要的作用, 在这儿我们主要关心Query Rewrite相关的地方, Oracle在Query Rewrite方面越来越强了, 在Oracle 8i中基本上是Text Ma ......
Oracle 创建序列:
create sequence SEQ_Tablename_id
increment by 1 &nbs ......
运行了Oracle的Linux服务器更改主机名
假如要把主机名改为oratest。
$表示oracle用户操作;
#表示root用户操作。
DB:oracle10.2
OS:RHEL4.5
第一步,关闭数据库和监听,dbconsole:
$ dbshut
$ lsnrctl stop
第二部:
# hostname oratest
第三步:
# vi /etc/sysconfig/network
更改hostname参数。
第四步 ......
// 建立表空间(指定文件路径)。
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 ......
***function(/*常用函数*/)***
----统计函数----
AVG --求平均值
COUNT --统计数目
MAX --求最大值
MIN --求最小值
SUM --求和
--AVG
use pangu
select avg(e_wage) as dept_avgWage
from employee
group by dept_id
--M ......