К сожалению, я скомпилировал свою процедуру с неправильным кодом. is is tt , чтобы получить старый скомпилированный код в oracle.Как получить последний выполненный этап Процедурный код в oracle?
ответ
Я не уверен, но если вы DBA и ваш сервер настроен на использование ретроспективных запросов, вы можете попробовать это:
select *
from dba_source AS OF TIMESTAMP
TO_TIMESTAMP('2016-12-14 09:30:00', 'YYYY-MM-DD HH:MI:SS')
where upper(text) like '%PROCEDURE_YOU_LOOKING_FOR%'
И, конечно, вы выбираете метку времени вам нужно
Спасибо Лео. Во время выполнения выше запроса я получаю эту ошибку. > [Ошибка] Строки скриптов: 1-4 -------------------------- ORA-01031: недостаточные привилегии Строка сценария 2, строка оператора 2, столбец 8 – Velu
Войдите в систему как администратор базы данных или пользователя sys, а затем попробуйте, – XING
Если вы не являетесь администратором базы данных, единственный способ, я думаю, - попросить их создать резервные копии. – Leo
Нет, Oracle хранит исходный код только что скомпилированной процедуры, а не ее исторические версии. Вы должны проверить старую версию системы управления версиями ... вы используете систему контроля версий, не так ли? – MT0
вы можете использовать запрос flashback на dba_source. Или expdp с metadata_only и timestamp в прошлом. Если вам повезло, и в базе данных нет транзакционной активности, это может сработать. – ibre5041