2010-08-03 61 views
2

我想使用C#解析文件.sql的SQL代码。C#中的Sql解析器用于语法检查Oracle语句

我想确定一个文件sql语法检查,特别是插入,更新和删除语句。

特别是有没有免费的解析器可以解析C#.NET中的SQL代码?更好的是免费软件,包含源代码,并且易于使用。

我使用Oracle

+0

您是否希望在*它传递给Oracle执行之前验证SQL *? – Lazarus 2010-08-03 10:50:20

+0

我该怎么做呢?无论如何,我的应用程序的requeriments是验证SQL没有执行。只有我需要用sql文件和“PARSER”。 – Kiquenet 2010-08-04 08:15:35

回答

2

您可以ANTLR尝试。
grammar page你会发现几种与Oracle有关的语法。

无关,有没有办法只是“准备”没有执行语句?这样你可以让Oracle检查语法,然后在代码中捕获最终的错误。这将帮助您跳过Oracle中已存在的重复功能。更不用说在不同版本的Oracle之间处理更改的问题了。

编辑:
有关代码示例回复评论:我用ANTLR简单,我有很难互联网上找到的代码示例。我发现的主要来源是examples from ANTLR download page。现在我看到ANTLR的作者Terence Parr,published new book以及随附源代码包含更多ANTLR examples

由于您对ANTLR没有多少经验,我可能再次建议您尝试另一种方法,因为这是一个相当复杂的领域,需要相当大的学习努力才能开始。至少,那是我的经历。

+0

thx,先生。禅达; .NEt中的任何示例应用程序 - 使用源代码(如果可能) - 使用AntLR? – Kiquenet 2010-08-03 12:19:40

+0

@zendar语法页面链接已过时。两种可能的替代方法:http://www.antlr3.org/grammar/list.html或https://github.com/antlr/grammars-v4 – stephen 2015-03-09 15:58:26

0

General SQL Parser可以在不连接数据库的情况下执行脱机SQL语法检查。它支持Oracle,SQL Server,DB2,MySQL,MS-ACCESS,Teradata和PostGreSQL。

但它是一个商业SQL库,而不是开源的。