zoukankan      html  css  js  c++  java
  • 做SQL解析时遇到的问题

    相对于算术表达式,Json和XML等解析,SQL就比较复杂了。

    举个例子来说:符号“(”是目前的SqlAnalyzer1.00中作为进入递归的标志之一,到“)”结束,中间是个查询语句。如果测试用例也是这样,自然没有问题,但是,SQL是灵活的...

    首先,括号里未必是子查询,它可能是函数的一部分,比如count(*), 这时就得回退记号,然后按函数重读;

    其次,函数嵌套也常见,比如substr里面有个length,这时候读到第一个“)”就认为结束是不合情理的;

    其三,有时查询不是非放到括号里才能正常执行的。

    不知Oracle或是MySQL的解释器是怎么做的,我目前能做到无函数有select/from/where/order by子句,多重子查询的SQL解析,总之我感觉要做出一个完美普适的SQL解析器还需要一些时日。

    2020年5月28日

  • 相关阅读:
    Easy Install详细参数
    linux.backspace乱码(转)
    RemoteFX
    netsh
    sc.exe
    WinRM和WinRS
    安全配置向导
    使用 Sconfig.cmd 配置服务器核心服务器
    FSMO
    Windows Server 2012之活动目录域服务的卸载
  • 原文地址:https://www.cnblogs.com/heyang78/p/12980015.html
Copyright © 2011-2022 走看看