| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 大数据 -> 将日志打印的SQL组装为可执行SQL -> 正文阅读 |
|
|
[大数据]将日志打印的SQL组装为可执行SQL |
|
近期在做报表项目,业务核心就是指标计算准确性,所以需要查数据库结果手动运算对比前端结果,工程开启SQL打印,但是打印的sql和条件参数是分离的,需要再处理一翻才行 这种有规律且反复的事情,当时就想到写一段自动处理的代码去运行,但是想到写代码太复杂了,于是就利用正则在notepad++里面录了一个宏执行
?先说一下目标:将第一个问号替换为'2022-01-26'? ?第二个问号替换为’2022-04-27' 我们从上述打印的sql里面找一下规律: 1、要找的数据后面都有一个(String) 或(Integer) 先将要替换的数据去除(String) 或(Integer) ,再加上单引号,int类型加上引号,数据库可以做隐式转换,不影响查询结果,我们想得到的是验证sql,所以这里不考虑性能问题 查找目标:[,:]\s*?(#?[\w-]*?)\((String|Integer)\)? ? ? ? ? ? ? ? ? ? ? 替换为:,'\1'
2、将第一个问号替换为第一个单引号里面的内容,使用正则替换时需要选择匹配新行因为问号和要调换的参数跨行了,且替换要点击多次才可 查找目标:\?(.*?),('#?[\w-]*?')? ? ? ? ? ? 替换为:\2\1
? 这样是已经得到想要的sql了 ?3、只保留想要的sql
最终结果:
我这边把以上过程录成了一个宏,可以快捷执行 notepad录制的宏-Java文档类资源-CSDN文库 |
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/16 4:42:34- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |