Мне нужно проанализировать планы выполнения запросов и извлечь из них данные для моего приложения.Несмотря на то, что этот ответ JDBC Oracle - план объяснения Fetch для запроса помог мне получить план выполнения текста через jdbc, невозможно проанализировать вывод текста, поскольку запросы являются параметрами времени выполнения.Приведенный ниже пример запроса возвращает XML в Sql Developer, но НЕ через jdbc.Я использую Oracle 11g XE с драйвером ojdbc6.jar.Почему этот запрос не работает через API JDBC?Будем благодарны за любую помощь.
EXPLAIN PLAN SET STATEMENT_ID = '123' FOR select * из заданий, где rownum <3 порядка по job_id desc </p>
SELECT dbms_xplan.build_plan_xml (Statement_id => '123') КАК XPLAN FROM dual;
Ниже мой код Java:
Driver d = (Driver) Class.forName("oracle.jdbc.OracleDriver").newInstance();
Connection conn = d.connect("jdbc:oracle:thin:username/password@//localhost:1521/XE", new Properties());
Statement statement1 = conn.createStatement();
statement1.execute("explain plan set STATEMENT_ID = '"+ id + "' for " + query);
statement1.executeQuery("select dbms_xplan.build_plan_xml(statement_id => '"+ id + "') AS XPLAN FROM dual");
ResultSet resultSet = statement1.getResultSet();
while (resultSet.next()) {
executionPlan = resultSet.getSQLXML(1).getString();
}