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的Linux服务器更改主机名
假如要把主机名改为oratest。
$表示oracle用户操作;
#表示root用户操作。
DB:oracle10.2
OS:RHEL4.5
第一步,关闭数据库和监听,dbconsole:
$ dbshut
$ lsnrctl stop
第二部:
# hostname oratest
第三步:
# vi /etc/sysconfig/network
更改hostname参数。
第四步 ......
1、查看表空间的名称及大小
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;
2、查看表空间物理文件的名称及大小
select tablespace_ ......
一、 分区的概念
二、 为什么使用分区?(优点)
三、 分区类型
四、 子分区
五、 对分区进行修改(增加、删除、分解、 ......
Transact_SQL小手册
*******************Transact_SQL********************
--语 句 功 能
--数据操作
SELECT & ......