То, что вы генерируете, правильно называется «планом выполнения». «Объяснить план» - это команда, используемая для генерации и просмотра плана выполнения, как это делает AUTOTRACE TRACEONLY в вашем примере.
По определению, план выполнения предназначен для одного оператора SQL. Блок PL / SQL не имеет плана выполнения. Если он содержит один или несколько операторов SQL, то у каждого из них будет план выполнения.
Один из вариантов - вручную извлечь операторы SQL из кода PL / SQL и использовать процесс, который вы уже показали.
Другой вариант - активировать трассировку SQL, а затем запустить процедуру. Это создаст файл трассировки на сервере, который содержит планы выполнения для всех операторов, выполненных в сеансе. Трассировка находится в довольно сырой форме, поэтому ее проще всего отформатировать с помощью инструмента Oracle TKPROF; Существуют также различные сторонние инструменты, которые обрабатывают эти файлы трассировки.