我想使用C#解析文件.sql的SQL代码。
我想要对文件sql进行确定的语法检查,特别是Insert,Update和Delete语句。
具体是否有免费的解析器可以解析C#.NET中的SQL代码?更好的是免费软件,包含源代码,易于使用。
我使用Oracle
答案 0 :(得分:2)
您可以尝试使用ANTLR 在grammar page上,您会发现几个与Oracle相关的语法。
无关,有没有办法只是“准备”声明而不执行?这样,您可以使用Oracle检查语法,然后在代码中捕获最终错误。这将帮助您跳过Oracle中已存在的重复功能。更不用说处理不同版本的Oracle之间的更改问题。
修改强>
关于代码示例的评论:我简单地使用了ANTLR,我很难在互联网上找到代码示例。我找到的主要来源是examples from ANTLR download page。现在我看到ANTLR的作者Terence Parr published new book以及随附的源代码包含更多ANTLR examples。
由于您对ANTLR没有太多经验,我可以再次建议您尝试另一种方法,因为这是一个相当复杂的领域,需要大量的学习努力才能帮助您入门。至少,那是我的经历。
答案 1 :(得分:0)
General SQL Parser可以在不连接数据库的情况下执行脱机SQL语法检查。它支持Oracle,SQL Server,DB2,MySQL,MS-ACCESS,Teradata和PostGreSQL。
但它是一个商业SQL库,而不是开源。
答案 2 :(得分:0)
miniSqlParser可以解析和检查SQL语句。这是C#和开源的组合。 SQL Formatter是使用此程序集的缩进SQL的Web应用程序。请尝试。