Мне интересно, как я могу получить план объяснения с помощью Java. Причина, в которой я нуждаюсь, заключается в том, что у нас есть структура, где специальные пользователи могут создавать отчеты. Эти отчеты иногда создают огромные запросы, в которых мы хотим объяснить "на лету" и сохранить стоимость. Таким образом, мы можем позже проанализировать высокозатратные запросы и оптимизировать их.
Пример кода, который дает мне незаконное исключение столбца:
ResultSet rs = null;
try {
oracle = ConnectionManager.getConnection(ConnectionManager.Test);
pstmt = oracle.prepareStatement("begin execute immediate
'explain plan for SELECT 1 from Dual'; end;");
rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getString(1));
}