我们正在使用 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)附近:无根节点(0,0)输入结束(10102)附近:(0,0)no_root_node(-1000)附近:无根节点(0,0)
知道库是否支持这种 PL/SQL 语句吗?(也许我们做错了什么)