从Oracle移植到MySQL的语句修改
缘起
- 上周(32周)开始做Oracle到DRDS(MySQL)的改造,有一些各个平台通用的语法,要转换成MySQL支持的语法。
- 但集成3天都没把环境搞好,也就没法验,所以也没啥工作量,本周一(8.13)把改好的一组走完流程,再继续改造下一组。
内容
0、前期(从页面找到xml)
- (1)F12看到View页面的
action/Name
。 - (2)在Eclipse里
ctrl+shift+R
搜索Name,会找到NameAction.js,至于哪个方法,看F12里的报错。 - (3)根据(2)里找到的方法,
Ctrl+H
搜索到controller文件 - (4)根据(3)里的service关键字,
Ctrl+H
搜索到implement文件 - (5)根据(4)里的Mapper,
Ctrl+H
搜索到xml文件 - 根据项目现状整理的,不一定具有普适性
1、左,右连接
右连接
- Oralce:
SELECT a.*, b.* from a(+) = b
- MySQL:
select a.*, b.* from a right join b
- Oralce:
左连接
- Oralce:
SELECT a.*, b.* from a = b(+)
- MySQL:
select a.*, b.* from a left join b
- Oralce:
- 哪边有
(+)
就允许为空 实例
- (1):
select A.* ,B.* from A,B where A.id = b.id(+)
改成select A.*,B.* from A left join B on A.id = B.id
- (1):
2、函数名
to_date
- Oracle中是
to_date()
,MySQL中支持STR_TO_DATE()
- Oracle中是
date_format/to_char
- Oracle中是
to_char()
,MySQL中支持DATE_FORMAT()
- Oracle中是
nvl/ifnull
- Oracle中是
nvl()
,MySQL中支持ifnull()
- Oracle中是
3、
99、杂项
xml里将
LIKE '%' || UPPER(#{memberName}) || '%'
改成LIKE UPPER("%"#{memberName}"%")
(这种改法废弃掉了,oracle不支持)- 原因目前还不是太懂。
xml里将
LIKE '%' || UPPER(#{memberName}) || '%'改成
<bind name="attrNameLike" value="'%' + attrName + '%'"/> AND UPPER(A.ATTR_NAME) LIKE UPPER(#{attrNameLike})
履历&参考
履历
- 20190814写第一稿(用时15min),整理一下吧。
- 20190817增加了一点,主要是15号开始有新活了,这个改造的优先级低,得暂停,再写得9月份了,先补充一下后,省得忘记了。
参考
- 主要是搜索引擎
相关推荐
苏康申 2020-11-13
vitasfly 2020-11-12
CoderToy 2020-11-16
wangshuangbao 2020-11-13
要啥自行车一把梭 2020-11-12
emmm00 2020-11-17
王艺强 2020-11-17
ribavnu 2020-11-16
bianruifeng 2020-11-16
vivenwan 2020-11-13
moyekongling 2020-11-13
云中舞步 2020-11-12
aydh 2020-11-12
kuwoyinlehe 2020-11-12
minerk 2020-11-12
jazywoo在路上 2020-11-11
敏敏张 2020-11-11
世樹 2020-11-11