web-dev-qa-db-ja.com

複数のデータベースに準拠したオンラインSQL構文チェッカー

複数のデータベースに準拠する構文を検証するためにオンラインで利用できるサイトはありますか?

たとえば、「usage」キーワードを含むSQLステートメントがある場合、「usage」キーワードはMYSQLで予約されているというエラーがスローされます。

67
Phani

this のようなフォーマッタを試すことができます

データベースで定義されているユーザー定義関数(またはアクセス権を持っているか、持っていない組み込み関数)を知らない(そしてできない)ため、常に制限されます。

また、ANTLRを見ることができます(ただし、オフラインソリューションになります)

21
Gary Myers
7
Infotekka

私はそのようなことを見たことがありませんが、Oracle、mysql、db2、およびsqlサーバーの構文チェッカーを含むこの開発ツールがあります... http://www.sqlparser.com/index。 php

ただし、これは単なるライブラリのようです。パーサーを活用して必要なことを行うには、アプリを作成する必要があります。そして、すべてのデータベースを含むEnterpriseエディションには450ドルかかります...痛い!

編集:そして、それを言った後、誰かがそのライブラリを使用してあなたが望むことをすでに行っているかもしれないように見えます: http://www.wangz.net/cgi-bin/pp/gsqlparser/sqlpp/sqlformat.tpl

ただし、オンラインツールは各DBに対して自動的にチェックしませんが、それぞれを手動で実行する必要があります。構文のチェックがどれほど優れているかを言うこともできません。あなた自身を調査する必要があること。

5

これについてのみ知っている。 MySQLに対してどれだけうまく機能するかわからない http://developer.mimer.se/validator/

4
RemoteSojourner

私はそのようなことを知りません、そして、私の経験はそれが現在存在しないということです。ほとんどは、2つのデータベースを並べて比較したものです。その情報には、遭遇するすべてのデータベースの専門家が必要ですが、これは一般的ではありません。サポート対象を知るためには、バージョンも依存します。

ANSI関数は、データベース間で構文がサポートされることを保証するために前進していますが、仕様を実装するベンダーに依存しています。そして今までのところ、ANSI仕様全体を一度に実装しているわけではありません。

しかし、特定の質問をし、関係するデータベースと使用されているバージョンを含めることで、このようなサイトのソースをクラウド化できます。

3
OMG Ponies

私はそのようなことはないという私の評判のいくつかを賭けて喜んでいます。

部分的には、クロスプラットフォームのSQL互換性が心配な場合、最善の策は、これらのことを処理するAPIまたは ORM ツールでデータベースコードを抽象化することです。 、したがって、新しいデータベースバージョンが出てきたら対処します。

利用可能な正確な種類のAPIは、プログラミング言語/プラットフォームに依存します。たとえば、PHPにはPear:DBなどがありますが、個人的には Django framework で実装された非常に素晴らしいPythonのORM機能を見つけました。他のプラットフォームでも同様に利用できるものがあるはずです。

2
Gnudiff