我们正在使用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语句? (也许我们做错了什么)