67 votes

Contrôleur 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 déclaration SQL avec un mot-clé 'usage', le site devrait m'envoyer une erreur disant que le mot-clé 'usage' est réservé dans MYSQL ?

21voto

Gary Myers Points 24819

Vous pouvez essayer un formateur comme ce

Ils seront toujours limités car ils ne savent pas (et ne peuvent pas savoir) quelles fonctions définies par l'utilisateur vous avez pu définir dans votre base de données (ou quelles fonctions intégrées vous avez ou n'avez pas accès).

Vous pouvez également vous pencher sur ANTLR (mais il s'agit d'une solution hors ligne).

7voto

Infotekka Points 4668

5voto

Michael Broughton Points 1263

Je n'ai jamais vu une telle chose, mais il y a cet outil de développement qui inclut un vérificateur de syntaxe pour oracle, mysql, db2, et sql server... http://www.sqlparser.com/index.php

Cependant, il semble qu'il ne s'agisse que de la bibliothèque. Vous devrez créer une application pour exploiter l'analyseur syntaxique afin de faire ce que vous voulez. Et l'édition Enterprise qui inclut toutes les bases de données vous coûterait 450 $... ouch !

EDIT : Et, après avoir dit cela - il semble que quelqu'un ait 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 s'il est capable de vérifier la syntaxe. Vous devez l'étudier vous-même.

4voto

RemoteSojourner Points 533

Je ne connais que ça. Je ne suis pas sûr qu'il soit efficace contre MySQL http://developer.mimer.se/validator/

3voto

OMG Ponies Points 144785

Je n'en connais pas, et d'après mon expérience, il n'en 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 font des progrès pour garantir la prise en charge de la syntaxe dans toutes les bases de données, mais cela dépend des fournisseurs qui mettent en œuvre la spécification. Et à ce jour, ils ne mettent pas en œuvre l'intégralité de la spécification ANSI à la fois.

Mais vous pouvez faire du crowd-sourcing sur des sites comme celui-ci en posant des questions spécifiques et en indiquant les bases de données concernées et les versions utilisées.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X