2011-08-07 116 views
1

我正在寻找一些东西,可以验证我在客户端收到的DB2-SQL文本。我不想仅仅为了验证SQL文本而进行数据库调用。任何可用于验证DB2 SQL文本的解析器?我正在使用C#。DB2 SQL验证

+0

我相信这是比它的价值更多的麻烦。即使您发现SQL解析器与DB2完全兼容,您也应该运行一堆测试来查询数据库。无论如何(假设您关心的是性能),我相信通过数据库进行验证将会快得多。此外,您的C#代码可能不具备模式知识,数据库中的数据等,因此很有用。 – NullUserException

+0

我将在执行时明确检查它。但是当我从另一个应用程序接收到100多个查询时,每次只是为了确保它的语法正确无误时才有意义。 Microsoft本身在.net4中提供[TSql100Parser类](http://msdn.microsoft.com/zh-cn/library/microsoft.data.schema.scriptdom.sql.tsql100parser.aspx),因为它有助于检查Query的语法。但是它仅限于SQL Server文本。 – Cannon

回答

1

您应该能够“准备”语句而不执行它。

SQL解析器是真正难以编写的野兽,你永远不会100%正确地获得它,除此之外,即使你可以扫描正确的语法,你也不知道目标系统中当前定义了什么表和视图。

因此,假设您只想检查它们的“SELECT”语句并“检查”它们并检查错误,但不要执行。