web-dev-qa-db-fra.com

Vérificateur de syntaxe SQL en ligne conforme à plusieurs bases de données

Existe-t-il un site disponible en ligne pour vérifier la syntaxe conforme à plusieurs bases de données?

Par exemple: si j'ai une instruction SQL avec un mot clé "usage", le site doit alors générer une erreur me disant que le mot clé "usage" est réservé dans MYSQL?

67
Phani

Vous pouvez essayer un formateur comme this

Elles seront toujours limitées car elles ne savent pas (et ne peuvent pas) connaître les fonctions définies par l'utilisateur que vous avez peut-être définies dans votre base de données (ou les fonctions intégrées que vous avez ou auxquelles vous n'avez pas accès).

Vous pouvez également regarder ANTLR (mais ce serait une solution hors ligne)

21
Gary Myers
7
Infotekka

Je n'ai jamais vu une telle chose, mais il existe un outil de dev qui inclut un vérificateur de syntaxe pour Oracle, mysql, db2 et un serveur SQL ... http://www.sqlparser.com/index. php

Cependant, cela semble être juste la bibliothèque. Vous devez créer une application qui exploite l’analyseur pour faire ce que vous voulez. Et l'édition Enterprise, qui comprend toutes les bases de données, vous coûtera 450 $ ... ouch!

EDIT: Et, après avoir dit cela - on dirait que quelqu'un a peut-être déjà fait ce que vous voulez en utilisant cette bibliothèque: http://www.wangz.net/cgi-bin/pp/gsqlparser/sqlpp/sqlformat.tpl

L'outil en ligne ne vérifie pas automatiquement chaque base de données, vous devez les exécuter manuellement. Je ne peux pas non plus dire à quel point il est bon de vérifier la syntaxe. Que vous auriez besoin de vous enquêter.

5
Michael Broughton

Savoir seulement à ce sujet. Je ne sais pas dans quelle mesure cela fonctionne contre MySQL http://developer.mimer.se/validator/

4
RemoteSojourner

Je n'en connais pas, et mon expérience est qu'il n'existe pas actuellement. La plupart sont des comparaisons côte à côte de deux bases de données. Cette information nécessite des experts dans toutes les bases de données rencontrées, ce qui n’est pas courant. Les versions dépendent aussi pour savoir ce qui est supporté.

Les fonctions ANSI progressent pour garantir la prise en charge de la syntaxe dans les bases de données, mais cela dépend des fournisseurs qui implémentent la spécification. Et à ce jour, ils n'implémentent pas toutes les spécifications ANSI à la fois.

Mais vous pouvez regrouper les sources sur des sites tels que celui-ci en posant des questions spécifiques et en précisant les bases de données impliquées et les versions utilisées.

3
OMG Ponies

Je suis prêt à parier une partie de ma réputation qu'il n'y a rien de tel.

En partie parce que si vous êtes inquiet à propos de la compatibilité multiplate-forme SQL, votre meilleur choix est d'extraire votre code de base de données à l'aide d'une API ou d'un outil ORM est bien pris en charge et traitera donc les versions les plus récentes de la base de données au fur et à mesure de leur sortie.

Le type exact d’API disponible dépendra de votre langage/plate-forme de programmation. Par exemple, PHP a Pear: DB et d’autres, j’ai personnellement trouvé les fonctionnalités ORM de Nice pour Python implémentées dans framework Django . Je suppose qu’il devrait y avoir certaines de ces choses disponible sur d'autres plateformes également.

2
Gnudiff