Извлечь список таблиц, используемых в SQL Statement, используя Java - PullRequest
0 голосов
/ 05 мая 2020

Мне нужно перечислить все таблицы, используемые в операторе SQL. Например, используя Apache Calcite для оператора SQL Join, можно получить одну из таблиц, например,

SqlParser parser = SqlParser.create("select word from db1.t1 join db2.t2 on (t1.x = t2.id)");
SqlNode sqlNode = parser.parseQuery();
SqlSelect sqlSelect = (SqlSelect) sqlNode;
SqlJoin from = (SqlJoin) sqlSelect.getFrom();
System.out.println("The table name is "+from.getLeft().toString());

Есть ли какой-либо унифицированный / общий способ извлечь список всех таблиц, используемых во всех формы запроса SQL, т.е.

  1. SQL Оператор без объединений
  2. SQL Оператор с объединениями
  3. Вставка SQL Оператор
  4. Create SQL statement
  5. Sub Query SQL statement

Хотя решение в Apache Calcite было бы предпочтительнее, но другая утилита / инструмент или код также были бы полезны .

...