SQLステートメントを解析するためのオープンソースJavaライブラリはありますか?
可能であれば、ベンダー固有の構文(Oracleテーブルスペース定義やMySQLのLIMIT句など)を解析(または少なくとも無視)できるように、カスタマイズ可能または柔軟でなければなりません。
そうでない場合は、SQL標準への厳密な準拠も問題ありません。
更新:次の2つの目的でこれが必要です。
パーサー
パーサーが必要な場合は、 Apache Derby のコードベースにパーサーが必要です。
ベンダー固有のSQLを扱う
Jdbc Connectionオブジェクトの 。native() メソッドを参照すると、ベンダー固有のクエリに後処理されるベンダーニュートラルクエリを渡すことができます。
Java用の一般的なSQLパーサー はオープンソースではありませんが、まさにあなたが探しているものです。
試す Zql
Hibernateは、SQLおよびhqlの解析にANTLRを使用します。
JSqlParserも良いオプションです。ただし、Oracle pl/sqlの解析中にいくつかのバグ(または実装されていない機能)があります。詳細については、そのフォーラムを参照してください。
したがって、Oracle pl/sqlを解析する場合は、ANTLRをお勧めします。