我想使用C#解析文件.sql的SQL代碼。C#中的Sql解析器用於語法檢查Oracle語句
我想確定一個文件sql語法檢查,特別是插入,更新和刪除語句。
特別是有沒有免費的解析器可以解析C#.NET中的SQL代碼?更好的是免費軟件,包含源代碼,並且易於使用。
我使用Oracle
我想使用C#解析文件.sql的SQL代碼。C#中的Sql解析器用於語法檢查Oracle語句
我想確定一個文件sql語法檢查,特別是插入,更新和刪除語句。
特別是有沒有免費的解析器可以解析C#.NET中的SQL代碼?更好的是免費軟件,包含源代碼,並且易於使用。
我使用Oracle
您可以ANTLR嘗試。
在grammar page你會發現幾種與Oracle有關的語法。
無關,有沒有辦法只是「準備」沒有執行語句?這樣你可以讓Oracle檢查語法,然後在代碼中捕獲最終的錯誤。這將幫助您跳過Oracle中已存在的重複功能。更不用說在不同版本的Oracle之間處理更改的問題了。
編輯:
有關代碼示例回覆評論:我用ANTLR簡單,我有很難互聯網上找到的代碼示例。我發現的主要來源是examples from ANTLR download page。現在我看到ANTLR的作者Terence Parr,published new book以及隨附源代碼包含更多ANTLR examples。
由於您對ANTLR沒有多少經驗,我可能再次建議您嘗試另一種方法,因爲這是一個相當複雜的領域,需要相當大的學習努力才能開始。至少,那是我的經歷。
General SQL Parser可以在不連接數據庫的情況下執行脫機SQL語法檢查。它支持Oracle,SQL Server,DB2,MySQL,MS-ACCESS,Teradata和PostGreSQL。
但它是一個商業SQL庫,而不是開源的。
您是否希望在*它傳遞給Oracle執行之前驗證SQL *? – Lazarus 2010-08-03 10:50:20
我該怎麼做呢?無論如何,我的應用程序的requeriments是驗證SQL沒有執行。只有我需要用sql文件和「PARSER」。 – Kiquenet 2010-08-04 08:15:35