(内部結合、外部結合)を持つ複合SQLを解析し、SQLで使用されるテーブル名を取得します。Python-Parsarsingを使用したSQLの解析
単純な選択の場合はテーブル名を取得できますが、SQLに内部結合がある場合は、以下のように左結合が行われ、結果は最初のテーブルのみが与えられます。
select * from xyz inner join dhf on df = hfj where z > 100
私は、下記のリンクにあるものと類似のプログラムをPaulによって使用しています。
http://pyparsing.wikispaces.com/file/view/select_parser.py/158651233/select_parser.py
誰かがどのようにあなたの質問は、あなたが使用しているSQLどのようなプラットフォームに依存しようとしている
select * from xyz inner join dhf on df = hfj where z > 100.
は、これは、http://stackoverflow.com/q/35295458/409172の複製である可能性があります。そのソリューションには、ライブデータベースとPL/SQLストアドが必要ですほとんどの作業を行う手順は、それが実現可能かどうかはわかりません。しかし、これはたぶん*複雑な* SQLを正しく解析する唯一の方法です。たとえ軽いOracle SQLであっても、解析することはほとんど不可能です。 2175個のキーワードを使用すると、予約されていないほとんどのOracle SQLの解析は大きな課題です。そのため、その答えに 'EXPLAIN PLAN'メソッドを使うような、ショートカットが必要なのです。 –