Я могу восстановить более старую Oracle pl/sql исходный код от основания корпуса после того, как я заменил более новым кодом

Я создал Oracle МН пакет / пакет SQL с заголовком и тело с большим количеством кода.

Позже, я закончил тем случайно, что стер код из того тела после того, как повторно выполнился CREATE OR REPLACE PACKAGE BODY... оператор с кодом другого источника (который на самом деле я намеревался сохранить под другим именем пакета).

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

12
задан Hash 24 October 2017 в 14:17
поделиться

2 ответа

Вы могли бы получить его обратно, используя ретроспективный запрос на all_source.

например. тело моего пакета в настоящее время находится в версии 2, выполняя этот запрос как обычный пользователь:

SQL> select text
  2  from all_source
  3  where name = 'CARPENTERI_TEST'
  4  and type = 'PACKAGE BODY';

TEXT


package body carpenteri_test
is

procedure do_stuff
is
begin
   dbms_output.put_line('version 2');
end do_stuff;

end carpenteri_test;

10 rows selected.

Я знаю, что изменил это около 9:30 сегодня вечером, поэтому после подключения в качестве пользователя SYSDBA я выполнил этот запрос:

SQL> select text
  2  from all_source
  3  as of timestamp
  4  to_timestamp('04-JUN-2010 21:30:00', 'DD-MON-YYYY HH24:MI:SS')
  5  where name = 'CARPENTERI_TEST'
  6  and type = 'PACKAGE BODY';

TEXT
----------------------------------------------------------------------------

package body carpenteri_test
is

procedure do_stuff
is
begin
   dbms_output.put_line('version 1');
end do_stuff;

end carpenteri_test;

10 rows selected.

Дополнительная информация о ретроспективном кадре можно найти здесь . Том Кайт также демонстрирует, как использовать flashback с all_source здесь .

18
ответ дан 2 December 2019 в 07:02
поделиться

Если у вас не включена регистрация/аудит команд DDL или нет резервной копии базы данных, то ответ почти наверняка будет отрицательным

Определения базы данных, включая хранимые процедуры, всегда должны рассматриваться как исходный код и храниться в репозитории кода

4
ответ дан 2 December 2019 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: