Eclipse利用正则表达式查找替换

背景

今天整理MySQL的脚本文件,发现Date类型字段MySQL可以直接插入 '2019-08-01' 这样的数据,在Oracle里执行就会报错:


报错信息

其实只要为每个字符串加上to_date()方法,转换为日期格式就好了,然鹅SQL很多。。

步骤

毕竟那啥是第一生产力嘛,恰好Eclipse的查找/替换功能里提供了“Regular Expressions”选项,我们就来好好利用一下。

  • 首先,明确一下我们的需求
    比如这是原来的SQL:
    INSERT INTO TEST (ID, NAME, CREATE_TIME) VALUES ('1', 'abc', '2019-08-07')
    这是我们想要的SQL:
    INSERT INTO TEST (ID, NAME, CREATE_TIME) VALUES ('1', 'abc', to_date('2019-08-07', 'yyyy-MM-dd'))
  • 其次,你要会写正则表达式,这里我简单写了一个:
    ['][0-9]{4}[\-][0-9]{2}[\-][0-9]{2}[']
    ['] 表示一个单引号
    [0-9]{4} 表示四位数字
    [-] 表示一个短横线(短横线在正则表达式里有其它含义,这里转义一下)
  • 然后,打开脚本文件,Ctrl+F打开查找/替换功能,在Eclipse里查询试一下:


    测试查找
  • 找到了一个日期,木有问题,然后写一下替换的表达式:
    to_date($1, 'yyyy-MM-dd')
    这里的$1用来表示查找表达式中查询结果的部分或全部,范围用小括号来限定,比如,你要取四位年份,就把[0-9]{4}括起来,像这样:
    [']([0-9]{4})[\-][0-9]{2}[\-][0-9]{2}[']
    这里我们要取整个日期,包括两边的单引号:
    (['][0-9]{4}[\-][0-9]{2}[\-][0-9]{2}['])
    然后填到Replace with栏,点击Replace All:
    替换

搞定✔

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 13,140评论 0 13
  • 全系列文章索引: IOS开发问题索引(一) IOS开发问题索引(二) IOS开发问题索引(三) IOS开发问题索引...
    Kevin_Junbaozi阅读 4,944评论 0 0
  • ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year:...
    雨一流阅读 3,880评论 0 2
  • 1.简介 数据存储有哪些方式?电子表格,纸质文件,数据库。 那么究竟什么是关系型数据库? 目前对数据库的分类主要是...
    乔震阅读 5,834评论 0 2
  • 正则表达式又称为正规表示法、规则表达式、常规表示法,英语为Regular Expression,常简写为regex...
    pro648阅读 10,788评论 1 11