8

使用されているすべての列名とテーブル名を特定するために分析する必要がある(データ結果ではなく実際のSQLコードのみ)個別のテキストファイルに150以上のSQLクエリがあります。できれば、各列とテーブルが出現する回数を指定してください。ネストされたSELECTステートメントなどを使用して、まったく新しいSQL解析プログラムを作成するのは見た目よりも難しいです。

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

4

6 に答える 6

12

実際にSQL Pretty Printerというツールを使用することになりました 。デスクトップ版を購入することもできますが、私は無料のオンライン アプリケーションを使用しました。クエリをテキスト ボックスにコピーし、[出力] を [List DB Object] に設定して、[Format SQL] ボタンをクリックするだけです。

約 150 の異なる (そして複雑な) SQL クエリを使用すると、うまく機能します。

于 2010-01-29T18:44:08.817 に答える
4

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

于 2008-09-11T15:29:15.087 に答える
2

あなたはこのようなものを見たいかもしれません:

JSqlParser

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

于 2008-09-11T14:31:18.953 に答える
2

アプリケーションがそれを行う必要があり、テーブルなどを含むデータベースにアクセスできる場合は、次のように実行できます。

SELECT TOP 0 * FROM MY_TABLE

ADO.NETを使用します。これにより、列とその属性をクエリできるDataTableインスタンスが得られます。

于 2008-11-21T19:34:04.803 に答える
0

antlr を使用してください... 文法を書きます。手順は antlr サイトに示されています。最終的には AST (抽象構文木) が得られます。指定されたクエリについて...これをトラバースして、クエリに存在するすべてのテーブル、列を取得できます..

于 2012-11-23T19:15:44.503 に答える
0

DB2 では、クエリに次のようなものを追加できますが、指定できる最小値は 1 です。0 を指定しようとすると、エラーがスローされます。

FETCH FIRST 1 ROW ONLY

于 2018-05-25T13:22:36.390 に答える