V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
unregister
V2EX  ›  程序员

怎么用脚本对 txt 文件里面的 sql 格式进行校验?

  •  
  •   unregister · 2023-11-15 22:45:19 +08:00 · 1070 次点击
    这是一个创建于 374 天前的主题,其中的信息可能已经有所发展或是发生改变。

    很多年的项目的 sql 语句保存在 resource 目录下的 txt 文件里面,使用的是 Oracle 数据库,每次提交前,经常忘记在表的名称前面加上 schema 的名称,然后在打包的时候出错。怎么样方便的对格式进行校验呢?除了这个脚本还有什么其他方式吗?使用的是 GitHub Enterprise,系统是 windows 。也不太会写这个脚本

    6 条回复    2023-11-16 23:44:35 +08:00
    rekulas
        1
    rekulas  
       2023-11-15 23:17:32 +08:00   ❤️ 1
    没用过客户端,不过 git 提交时可以先验证格式,例如你可以搜搜 git pre commit hook, 都是通用的,把别人的模板复制一份改下规则就能用
    Gunslinger
        2
    Gunslinger  
       2023-11-16 07:43:23 +08:00
    自己写个小程序校验,然后脚本调用程序
    TheEricZhou
        3
    TheEricZhou  
       2023-11-16 10:38:21 +08:00   ❤️ 1
    1.想办法把这些 SQL 语句读取并做拆分(比如以分号作为分隔符拆分)
    2.解析这些语句并按语句类型进行分类(比如使用 druid 连接池自带的解析器可以解析成 CreateTableStatement/InsertStatement 等对象)
    3.根据不同类型的语句 获取其目标表或者来源表的信息判断有没有加 Schema

    略麻烦,预计需要 1 整天才能搞定
    Les1ie
        4
    Les1ie  
       2023-11-16 12:20:44 +08:00   ❤️ 1
    unregister
        5
    unregister  
    OP
       2023-11-16 23:09:55 +08:00
    @TheEricZhou 就是只想提醒我表名前面加库名就可以了,其他的格式不要求,表明往往是唯一的。
    @Les1ie 看起来挺麻烦的
    unregister
        6
    unregister  
    OP
       2023-11-16 23:44:35 +08:00
    @Les1ie 大佬,好像没有对应的规则,表前面加数据库名称的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2691 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:16 · PVG 23:16 · LAX 07:16 · JFK 10:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.