通用SQL解析器-解析Oracle PL / SQL

时间:2018-07-30 16:13:28

标签: c# oracle plsql sql-parser

我们正在使用SQLParser检查Oracle SQL句子中的语法错误。我看到该库支持PL / SQL,但是,在解析以下SQL时遇到了问题:

declare
 newSeq number;
begin
  select MAX(id_organization)  + 1 into newSeq from c_organization;
  If newSeq > 0 then
    begin
            execute immediate 'DROP SEQUENCE S_C_ORGANIZATION';
      exception when others then
        null;
    end;
    execute immediate 'CREATE SEQUENCE S_C_ORGANIZATION INCREMENT BY 1 START WITH ' || newSeq ;
  end if;
end

通过以下代码使用其C#库:

TGSqlParser parser = new TGSqlParser(EDbVendor.dbvoracle);
parser.sqltext = sql;
if (parser.checkSyntax() > 0){
    Console.WriteLine(parser.Errormessage);
}

我们得到:

  

输入(10102)的结尾在附近:(0,0)no_root_node(-1000)在附近:没有根   输入(10102)的节点(0,0)端附近:(0,0)no_root_node(-1000)附近:   没有根节点(0,0)

是否知道该库是否支持这种PL / SQL语句? (也许我们做错了什么)

0 个答案:

没有答案