首页 > 数据库技术 > 详细

oracle视图迁移到mysql

时间:2019-07-05 12:25:42      阅读:386      评论:0      收藏:0      [点我收藏+]

oracle视图迁移mysql(仅记录当前项目遇到的小问题和解决方案)
涉及问题点:
1、函数差异
        oracle                    mysql
判断空值:    nvl(‘字段‘,值)             ifnull(‘字段‘,值)
条件赋值:    decode()                case when then else end
日期格式化:   to_char(‘date‘,‘yyyy-MM-dd‘)           date_format(‘date‘,‘yyyy-MM-dd‘)
...
2、规则限定
主要是mysql创建视图遇到的规则限制,
2.1、mysql创建视图不允许SQL中有子查询,oracle不存在次限制。
2.2、mysql分组排序实现和oracle差异
oracle分组排序,获取排序id:row_number() over(partition by a.policy_id order by a.transfer_date desc)
mysql方案:使用函数
CREATE FUNCTION `func_inc_var_session`(reset BIT) RETURNS int
   
NO SQL
   
NOT DETERMINISTIC
    
begin
     
IF reset THEN
       
SET @var := 0;
     
ELSE
       
SET @var := IFNULL(@var,0) + 1;
     
END IF;
     
return @var;
    
end
视图:SELECT func_inc_var_session(0) FROM (select语句集合结果)T JOIN (SELECT func_inc_var_session(1)) r
【转自--https://blog.csdn.net/ai_feng123/article/details/82256814】
2.2.1倘若不使用视图排序,可使用变量(变量需要使用实体表,mysql变量不支持虚拟表)
SELECT @rownum := @rownum+1 AS rownum, table1.* FROM (SELECT @rownum:=0) r ,table1;
--附mysql创建视图的限制--http://blog.51yip.com/mysql/1065.html

oracle视图迁移到mysql

原文:https://www.cnblogs.com/cbxx/p/11137330.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!