2016-12-15 5 views
-1

К сожалению, я скомпилировал свою процедуру с неправильным кодом. is is tt , чтобы получить старый скомпилированный код в oracle.Как получить последний выполненный этап Процедурный код в oracle?

+1

Нет, Oracle хранит исходный код только что скомпилированной процедуры, а не ее исторические версии. Вы должны проверить старую версию системы управления версиями ... вы используете систему контроля версий, не так ли? – MT0

+1

вы можете использовать запрос flashback на dba_source. Или expdp с metadata_only и timestamp в прошлом. Если вам повезло, и в базе данных нет транзакционной активности, это может сработать. – ibre5041

ответ

2

Я не уверен, но если вы 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%' 

И, конечно, вы выбираете метку времени вам нужно

+0

Спасибо Лео. Во время выполнения выше запроса я получаю эту ошибку. > [Ошибка] Строки скриптов: 1-4 -------------------------- ORA-01031: недостаточные привилегии Строка сценария 2, строка оператора 2, столбец 8 – Velu

+1

Войдите в систему как администратор базы данных или пользователя sys, а затем попробуйте, – XING

+0

Если вы не являетесь администратором базы данных, единственный способ, я думаю, - попросить их создать резервные копии. – Leo

 Смежные вопросы

  • Нет связанных вопросов^_^