使用されているすべての列名とテーブル名を特定するために分析する必要がある(データ結果ではなく実際のSQLコードのみ)個別のテキストファイルに150以上のSQLクエリがあります。できれば、各列とテーブルが出現する回数を指定してください。ネストされたSELECTステートメントなどを使用して、まったく新しいSQL解析プログラムを作成するのは見た目よりも難しいです。
これを実行するプログラムまたはコード(またはこれに近いもの)が必要ですが、私はそれを見つけていません。
実際にSQL Pretty Printerというツールを使用することになりました 。デスクトップ版を購入することもできますが、私は無料のオンライン アプリケーションを使用しました。クエリをテキスト ボックスにコピーし、[出力] を [List DB Object] に設定して、[Format SQL] ボタンをクリックするだけです。
約 150 の異なる (そして複雑な) SQL クエリを使用すると、うまく機能します。
MS SQLServer で実行計画レポートを使用するのはどうですか? これを xml ファイルに保存して、解析することができます。
あなたはこのようなものを見たいかもしれません:
これは、JavaCCを使用して、クエリ文字列を解析してオブジェクトグラフとして返します。私はそれを使ったことがないので、その品質を保証することはできません。
アプリケーションがそれを行う必要があり、テーブルなどを含むデータベースにアクセスできる場合は、次のように実行できます。
SELECT TOP 0 * FROM MY_TABLE
ADO.NETを使用します。これにより、列とその属性をクエリできるDataTableインスタンスが得られます。
antlr を使用してください... 文法を書きます。手順は antlr サイトに示されています。最終的には AST (抽象構文木) が得られます。指定されたクエリについて...これをトラバースして、クエリに存在するすべてのテーブル、列を取得できます..
DB2 では、クエリに次のようなものを追加できますが、指定できる最小値は 1 です。0 を指定しようとすると、エラーがスローされます。
FETCH FIRST 1 ROW ONLY