2011-08-07 15 views
1

私は、クライアント側で受け取っているDB2-SQLテキストを検証できる何かを探しています。私はSQLテキストを検証するためだけにDB呼び出しをしたくありません。 DB2 SQLテキストの検証に使用できるパーサーはどれですか?私はC#を使用しています。DB2 SQL検証

+0

私はこれが価値よりもずっと面倒だと思います。 DB2と完全に互換性のあるSQLパーサーが見つかったとしても、おそらくDBを照会するだけのテストを実行する必要があります。私はDBによる検証は、関係なく(あなたの懸念がパフォーマンスであると仮定して)より速くなると信じています。また、C#コードでスキーマやDB内のデータなどの知識がない可能性があります。 – NullUserException

+0

私は明らかに実行時に確認します。しかし、別のアプリケーションから100件のクエリを受け取っているときは、構文的に正しいことを確認するたびにDBを押すのは意味がありません。 Microsoftは、Queryの構文をチェックするのに便利だと考えている.Net4では、[TSql100Parser class](http://msdn.microsoft.com/en-us/library/microsoft.data.schema.scriptdom.sql.tsql100parser.aspx)を提供している。しかし、それはSQL Serverのテキストに限られています。 – Cannon

答えて

1

文を実行せずに「準備」できなければなりません。

SQLパーサーは真に書くことが難しい獣です。正しい構文をスキャンできても、ターゲットシステムで現在どのテーブルとビューが定義されているか分かりません。

だから、ちょうど "SELECT"ステートメントを仮定して、単にそれらを "準備"してエラーをチェックしたいが、実行しない。