c# - C# 中的 Sql Parser 用于语法检查 Oracle 语句

标签 c# sql oracle parsing syntax

我想使用 C# 解析文件 .sql 的 SQL 代码。

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

具体来说,是否有免费的解析器可以解析 C# .NET 中的 SQL 代码?更好的是免费软件,包括源代码,并且易于使用。

我用甲骨文

最佳答案

你可以试试ANTLR .
grammar page你会发现几个与 Oracle 相关的语法。

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

编辑:
重新评论代码示例:我曾短暂地使用过 ANTLR,但我很难在互联网上找到代码示例。我找到的主要来源是 examples from ANTLR download page .现在我看到 ANTLR 的作者 Terence Parr,published new book附带的源代码包含更多 ANTLR examples .

由于您没有太多使用 ANTLR 的经验,我是否可以再次建议您尝试另一种方法,因为这是一个相当复杂的领域,需要大量的学习努力才能让您入门。至少,这是我的经验。

关于c# - C# 中的 Sql Parser 用于语法检查 Oracle 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3395767/

相关文章:

bitbucket 管道中的 Oracle maven 依赖项

java - 使用 Hibernate 获取由 View 映射的抽象父类(super class)返回无效的列名

c# - 使用多字段过滤概念化高级 linq 查询

c# - 如何配置我的项目以在 64 位和 32 位计算机上运行

php - 使用 PHP 脚本从 Postgres 迁移到 Sybase

mysql - 我对 DataGrip 进行了错误检查,但是当我尝试运行它时,sql 文件仍然生成语法错误

java - 如何从 CallableStatement 获取所有参数绑定(bind)信息?

c# - 反序列化 MemoryStream - 意外行为

c# - 如何使用代理用户请求访问NiFi

mysql - MySQL 的 least() 和 greatest() 的 MonetDB 等价物是什么?