2008-09-11 4 views
4

私は、使用するすべての列名とテーブル名を識別するために、分析する必要のある個別のテキストファイル(実際のSQLコードでデータ結果ではありません)に150以上のSQLクエリを用意しています。好ましくは、各カラムおよびテーブルが出現する回数である。新しいSQL構文解析プログラムを書くことは、ネストされたSELECT文などのように思っているよりも扱いにくいです。SQLクエリを解析して列名とテーブル名を引き出す方法はありますか?

これ(またはこれに近いもの)を実行するプログラムまたはコードがある必要がありますが、見つかりませんでした。

答えて

8

私は実際に SQL Pretty Printerというツールを使用して終了しました。デスクトップ版を購入することはできますが、私は無料のオンラインアプリケーションを使用しました。クエリをテキストボックスにコピーし、[DBオブジェクトの一覧表示]に出力を設定し、[SQLの書式設定]ボタンをクリックします。

約150種類の(複雑な)SQLクエリを使用すると効果的です。

+0

保存しました* * $$: ありがとうございました。 –

+0

ちょうど私が探していた、ありがとう! – russds

2

あなたはこのような何かを探してしたいことがあります。

JSqlParser

オブジェクトグラフとしてクエリ文字列を解析して返すためにJavaCCのを使用します。私はそれを使ったことがないので、その品質を保証することはできません。

3

MS SQLServerで実行計画レポートを使用することはどうですか?これをxmlファイルに保存して解析することができます。 ADO.NETを使用して

SELECT TOP 0 * FROM MY_TABLE 

2

あなたがしている場合は、アプリケーションがそれを行う必要があり、テーブルなどを持つデータベースへのアクセス権を持っている、あなたのような何かを実行することができます。これにより、列とその属性を照会できるDataTableインスタンスが得られます。

0

antlrと一緒に行ってください...文法nを書いてください。antlrサイトで与えられています。実際には、AST(抽象構文木)を取得します。与えられたクエリのために...我々はこれを探索し、クエリに存在するすべてのテーブル、カラムを持ってくることができます。

関連する問題