2011-08-07 96 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」語句並「檢查」它們並檢查錯誤,但不要執行。