是否有任何SQL驗證程序可以檢查針對多個數據庫服務器的語法?是否有任何SQL驗證器可以檢查針對多個數據庫服務器的語法?
例如,我可能想要檢查一個特定的查詢是否可以針對Oracle,MySQL和SQL Server。
我比被查詢的實際模式更關心SQL語法,所以一個能夠捕獲主要語法錯誤的工具,比如檢測到limit
子句在SQL Server和Oracle中不被支持就足夠了。
編輯:
幾個答案都建議檢查語法特定的DBMS或ANSI標準。
我在尋找一種可能性,即針對兩種或多種數據庫(比如SQL Server和Oracle)之間的功能聯合。我希望能夠使用我在特定應用程序中針對的所有DBMS支持的任何SQL功能。
我不知道它是否值得。我認爲這取決於幾個數據庫共享的非ANSI功能的數量。如果數量很少,那麼以ANSI標準爲目標可能會更好。
也許SQLite的外殼可能會有幫助。但是,LEFT和FULL聯接沒有實現,並且與Oracle不同,您可以從無選擇,而在Oracle中您必須使用DUAL。 – Benoit
你寫了多少個數據庫?或者,這是否嘗試編寫一些數據庫不可知的中間件?也許可以嘗試dbms_sql.parse for Oracle,其他dbms類似(?)。 – tbone
它也驗證每個數據庫的哪個版本。 –