oracle项目迁移为mysql时用正则表达式替换一些函数
介绍
一个成熟的项目从oracle迁成mysql,很多需要改变的函数在网上都可以找到
需要的前置知识:正则表达式,转义字符
在idea中按下ctrl+shift+R(replace)即可打开替换页面
decode转换成case when
这个不可控的东西太多了,留个坑
目前只使用这种来替换,参数中有逗号的不好处理
DECODE\(([^,]*?)\,([^,]*?)\,([^,]*?)\,([^,]*?)\)
case $1 when $2 then $3 else $4 end
||换成CONCAT ,外面套一层TO_NUMBER换成cast
TO_NUMBER\(\((\s*[a-zA-Z]*?\s*)\|\|(\s*[a-zA-Z]*?\s*)\)\)
cast(CONCAT( $1 , $2 ) as SIGNED INTEGER) //