15.01.2021 0 min to read

Recompile Invalid Objects In Oracle

Category : Статьи

Проблема заключается в том, что изменения исходных импортируемых таблиц привели к ошибкам в построенных по ним представлениях.  Объекты с ошибками необходимо перекомпилировать.


В Oracle SQL Developer выглядит так:

Запрос для получения списка объектов с ошибками:

select object_name,object_type,status from user_objects where STATUS='INVALID';

DBA может сделать запрос к другому системному представлению и получить информацию о всех схемах:

select owner,object_name,object_type,status from dba_objects where STATUS='INVALID';

Для перекомпиляции объектов использовать пакет DBMS_UTILITY

BEGIN 
DBMS_UTILITY.compile_schema(schema => 'ИМЯ_СХЕМЫ'); 
END;
/

Процесс для большой схемы не мгновенный.

Для нескольких объектов можно использовать DDL:

ALTER PACKAGE SCHEMA.1_PKG COMPILE BODY; 
ALTER PROCEDURE SCHEMA.1_PROC COMPILE;
ALTER VIEW SCHEMA.V_VIEQ COMPILE;
ALTER FUNCTION SCHEMA.1_FUN COMPILE;
Tags: ,