Verificador de sintaxe de SQL 'Online' em conformidade com várias bases de dados [fechado]

Existe algum site disponível on-line para verificar a sintaxe que está em conformidade com várias bases de dados?

por exemplo: se eu tiver uma declaração SQL com uma palavra-chave 'usage', então o site deve me lançar um erro dizendo que a palavra-chave 'usage' está reservada no MYSQL?

Author: Phani, 2011-02-16

6 answers

Podes tentar um formatador como este.

Eles serão sempre limitados porque não sabem (e não podem) quais as funções definidas pelo utilizador que você pode ter definido na sua base de dados (ou quais as funções incorporadas que você tem ou não tem acesso).

Você também pode olhar para o ANTLR (mas isso seria uma solução offline)

 21
Author: Gary Myers, 2011-02-16 22:34:31
Já tentaste? http://www.dpriver.com/pp/sqlformat.htm?
 7
Author: Infotekka, 2011-03-01 22:41:54

Nunca vi tal coisa, mas há uma ferramenta dev que inclui um verificador de sintaxe para oracle, mysql, db2, e servidor sql... http://www.sqlparser.com/index.php

No entanto, isto parece ser apenas a biblioteca. Você precisa construir um aplicativo para alavancar o analisador para fazer o que você quer. E a edição da Enterprise que inclui todas as bases de dados custaria $ 450 ... ai!

Editar: E depois de dizer isso, parece que alguém já o fez. o que você quer usando essa biblioteca: http://www.wangz.net/cgi-bin/pp/gsqlparser/sqlpp/sqlformat.tpl

A ferramenta 'online' não verifica automaticamente cada DB, mas precisa de executar cada um manualmente. Nem posso dizer como é bom em verificar a sintaxe. Que teria de investigar a si próprio.

 5
Author: Michael Broughton, 2011-02-23 20:50:58
Só sei disto. Não sei se é bom contra o MySQL http://developer.mimer.se/validator/
 4
Author: RemoteSojourner, 2011-02-16 11:31:21
Não sei de nada disso, e a minha experiência é que não existe actualmente. A maioria são comparações lado a lado de duas bases de dados. Essa informação requer especialistas em todas as bases de dados encontradas, o que não é comum. As versões também dependem, para saber o que é suportado.

As funções ANSI estão a fazer progressos para garantir que a sintaxe é suportada através de bases de dados, mas depende dos vendedores implementarem a especificação. E, até à data, não estão a implementar toda a norma ANSI num tempo.

Mas você pode crowd source em sites como este, fazendo perguntas específicas e incluindo as bases de dados envolvidas e as versões utilizadas.

 3
Author: OMG Ponies, 2011-02-16 14:55:56
Estou disposto a apostar a minha reputação que isso não existe.

Parcialmente porque se está preocupado com a compatibilidade de SQL entre plataformas, a sua melhor aposta por sua vez é abstrair o seu código de base de dados com alguma API ou ORM ferramenta que lida com estas coisas para si, e é bem suportada, por isso irá lidar com versões mais recentes de bases de dados à medida que elas saem.

O tipo exacto de API disponível para si dependerá da sua linguagem de programação/plataforma. Por exemplo, PHP has Pear: DB and others, I personally have found quite nice Python's ORM features implemented in Django framework . Presumo que também deveria haver algumas destas coisas disponíveis noutras plataformas.

 2
Author: Gnudiff, 2011-03-02 15:53:00