2

私は、ほとんどすべてのSybaseとOracleがSQLスクリプトを直接使用する、ワークロード自動化プロセス用の巨大なメタデータディクショナリとルックアップアプリケーションの構築に取り組んでいます。私がする必要があるのは、すべてのスクリプトのすべてのSQLステートメントのインベントリを作成し、ステートメントタイプ(INSERT、UPDATE、CREATE TABLEなど)、テーブルイン、テーブルなどを抽出することです。

私は、ほとんど正規表現を使用してOKジョブを実行するプロトタイプ解析アプリケーションを持っています。そのようなプログラミングは悪夢を超えて退屈であり、率直に言って、考えられるすべてのユースケースシナリオをカバーするよりも、夏の真っ只中に3フィートの溝を掘りたいと思います。さらに、私は車輪の再発明をしているような気がします。SQLステートメントだけをフィードすると、通常のPOJO機能を介してアクセスできる構造をコンパイルして抽出するかどうかが#1に示されるAPIが必要だと思いました。getStatementType、getFromTables()などのように。

私が扱っているスクリプトは、ほぼすべてのコーディングスタイルで記述されており、標準の形式はありません。また、あらゆる種類のステートメント形式と構文が表現されています(集計、サブクエリ、名前を付けます)。

だから私の質問は:SQLを与えられたSQLを解析するAPIはありますか、そしておそらく正規化された詳細を返すためにどのベンダーに固有ですか?

同様のことを行うEclipse用のプラグイン(DDLエディターとQuantum DB)があることを知っているので、SQL認識を処理するAPIの一部をこっそりと利用できると思いました。考え?

4

2 に答える 2

1

解析には、 antlrとベンダー固有または標準のSQL文法の1つを使用できます。

于 2012-10-12T17:33:27.773 に答える
1

すべてのタイプのSQLクエリにZQLパーサーを使用できます。ZQLは、このチュートリアルで指定されているすべてのSQL操作を実行できます

于 2014-06-20T07:59:23.480 に答える