Компиляция объектов

Компиляция битых (invalid) объектов в Oracle 11g

Сегодня расскажу, как можно несколькими способами откомпилировать битые объекты (процедуры, пакеты, функции и т.д.) в Oracle 11g.Компиляцию битых объектов (статус «INVALID») в Oracle можно сделать несколькими способами:

1. Процедурой:

/*Компиляция одного конкретного объекта*/
BEGIN
  dbms_ddl.alter_compile ('ваш тип объекта','ваша схема','ваше имя объекта');
END;
---------
/*Компиляция битых объектов в цикле*/
BEGIN
  FOR l_crs IN (SELECT   owner,
                         object_name,
                         object_type
                  FROM   all_objects
                  WHERE  STATUS = 'INVALID' AND owner='ваша схема' AND object_type='ваш тип объекта' /*Укажите свой объект*/
                )
  LOOP
    BEGIN
      IF l_crs.object_type = 'FUNCTION' THEN
        EXECUTE IMMEDIATE 'ALTER ' || l_crs.object_type || ' "' || l_crs.owner || '"."' || l_crs.object_name || '" COMPILE';
      END IF;
    EXCEPTION
      WHEN OTHERS THEN NULL;
        DBMS_OUTPUT.PUT_LINE(DBMS_UTILITY.FORMAT_ERROR_STACK);
        RETURN;
    END;
  END LOOP;
END;

2. Средствами PL/SQL Developer (IDE):

Tools->Compile invalid objects->Run

Pl/sql developer compile invalid objects

Pl/sql developer compile invalid objects

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*