首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有针对主要SQL方言(TSQL、Oracle、MySQL)的开源验证解析器?或者至少是这些方言的精确规范?

是否有针对主要SQL方言(TSQL、Oracle、MySQL)的开源验证解析器?或者至少是这些方言的精确规范?
EN

Stack Overflow用户
提问于 2011-03-04 07:09:07
回答 1查看 1.3K关注 0票数 5

流传的说法是,Perl不是由规范定义的,而是由当前解释器版本碰巧接受的任何规范定义的。现在,让我们考虑一种SQL方言,比如TSQL。是否有已发布的规范允许创建与SQL Server中的验证器等效的验证器?像开源这样的验证器已经存在了吗?甲骨文也有同样的问题。

好的,所以对于MySQL,我猜验证器可以直接从MySQL代码库中提取出来。然而,他们是否真的发布了规范本身,以防我想要创建自己的验证器?

EN

回答 1

Stack Overflow用户

发布于 2012-06-25 12:42:57

您似乎对如何为MySQL做了一个想法。关于Oracle我真的不能说太多,除了它主要实现ANSI SQL和对SQL的PL/SQL过程语言扩展可以在Oracle9i的here中找到。

对于SQL Server:

Microsoft Books On Line (BOL)是官方的参考规范。但是,不同版本的SQL Server有不同的页面。有几个项目与此相关。http://www.sqlparser.com/ -有.NET、Java、COM和VCL版本,适用于Oracle、DB2、Mysql和SQL Server / Sybase (T-SQL)。价格也相当合理。

http://www.codeproject.com/Articles/1136/SharpHSQL-An-SQL-engine-written-in-C (c#)

http://antlr.org/ --这看起来是个不错的选择。

我经常使用这个站点来格式化SQL,但它也做一些验证,尽管它相当粗糙:http://www.dpriver.com/pp/sqlformat.htm

这是一个类似的网站:http://www.tsqltidy.com/

我认为为SQL编写验证器是一项艰巨的任务,即使是在它的一个变体中。您可以查看ANSI SQL的各种ISO/IEC标准。ANSI SQL-92被广泛实施,但也有SQL:2008标准。不过,你必须为这些标准的文档付费,而且它们并不便宜。

祝好运。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5187768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档