Мне нужно перечислить все таблицы, используемые в операторе 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, т.е.
- SQL Оператор без объединений
- SQL Оператор с объединениями
- Вставка SQL Оператор
- Create SQL statement
- Sub Query SQL statement
Хотя решение в Apache Calcite было бы предпочтительнее, но другая утилита / инструмент или код также были бы полезны .