Знакома ситуация, когда программа (SQLPlus, TOAD, SQL NAvigator...), в которой отлаживался в течении пару часов сложный SQL-запрос или блок PL\SQL, вдруг подвисала, а результат ещё не сохранён ?
К счастью ещё не всё потеряно, в буфере Оракла он ещё остался :)
Если сразу запустить этот запрос , то можно вытащить из буфера нужный SQL или целый блок PL\SQL.
SELECT sql_text FROM sys.V_$SQL WHERE sql_text LIKE '%dy.%desc%'
В Like, естественно, нужно поставить свои, характерные фрагменты .
Правда результат мы получаем в виде одной, иногда очень длинной, строки. Соответственно приходится вручную или с помощью утилиты форматировани приводить sql в божеский вид.
Но, всё же это лучше, чем ничего :)
PS.
Во вьюшках V_$SQLTEXT_WITH_NEWLINES и V_$SQLTEXT
есть разбивка на строки, но очень корявая.