(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Как перекомпилировать объекты базы данных?

Источник: all-oracle

Рекомендовано для:  

Существует пять способов:

  1. DBMS_DDL
  2. DBMS_UTILITY
  3. UTL_RECOMP
  4. UTLRP.SQL
  5. Ручная перекомпиляция

DBMS_DDL.ALTER_COMPILE

Эта процедура аналогична предложению:
ALTER PROCEDUREFUNCTIONPACKAGE [.] COMPILE [BODY]
Синтаксис

Exec dbms_ddl.alter_compile ( type , schema, name);
--Type : Должен быть PROCEDURE, FUNCTION, PACKAGE, PACKAGE BODY илиTRIGGER.
--Schema : Имя пользователя базы данных
--Name : Имя объекта
Пример
SQL> exec dbms_ddl.alter_compile ('PROCEDURE','SCOTT','TEST');
PL/SQL procedure successfully completed.

DBMS_UTILITY.COMPILE_SCHEMA

Эта процедура компилирует все процедуры, функции, пакеты и триггеры в указанной схеме.
Синтаксис

exec dbms_utility.compile_schema ( schema,compile all)
--Schema : Имя пользователя базы данных
--Compile All : Тип объекта PROCEDURE, FUNCTION, PACKAGE, PACKAGE BODY илиTRIGGER
Пример
SQL> exec dbms_utility.compile_schema('SCOTT');
PL/SQL procedure successfully completed.

UTL_RECOMP

Этот скрипт очень полезен после обновления версии, потому что как правило после обновления статус INVALID получают все PL/SQL и Java объекты
Синтаксис

Exec UTL_RECOMP.RECOMP_SERIAL ();
Пример
SQL> Exec UTL_RECOMP.RECOMP_SERIAL ();
PL/SQL procedure successfully completed.
-- Запускается под пользователем SYS

UTLRP.SQL

Перекомпилирует все объекты PL/SQL, имеющие статус "INVALID", а именно процеду, функции, типы и пакеты.
Расположен: $ORACLE_HOME/rdbms/admin

Пример
SQL> @c:\oracle\product\10.1.0\db_1\rdbms\admin\UTLRP.SQL
TIMESTAMP
-----------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_BGN 2007-08-04 12:47:21

PL/SQL procedure successfully completed.

TIMESTAMP
-----------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_END 2007-08-04 12:47:26

PL/SQL procedure successfully completed.

-- Запускается под пользователем SYS
-- Рекоммендован после обновления базы данных или после переноса

Ручная перекомпиляция

Лучше всего перекомпилировать объекты вручную

Spool recompile.sql
Select "alter "object_type" "object_name" compile;"
From user_objects
Where status <> "VALID"
And object_type IN ("VIEW","SYNONYM",
"PROCEDURE","FUNCTION",
"PACKAGE","TRIGGER");
Spool off
@recompile.sql

Note: VIEW,SYNONYM,PROCEDURE,PACKAGE,FUNCTION,TRIGGER

Spool pkg_body.sql
Select "alter package "object_name" compile body;"
From user_objects
where status <> "VALID"
And object_type = "PACKAGE BODY";
Spool off
@pkg_body.sql

Spool undefined.sql
select "alter materizlized view "object_name" compile;"
From user_objects
where status <> "VALID"
And object_type ="UNDEFINED";
Spool off
@undefined.sql

Spool javaclass.sql
Select "alter java class "object_name" resolve;"
from user_objects
where status <> "VALID"
And object_type ="JAVA CLASS";
Spool off
@javaclass.sql

Spool typebody.sql
Select "alter type "object_name" compile body;"
From user_objects
where status <> "VALID"
And object_type ="TYPE BODY";
Spool off
@typebody.sql

Spool public_synonym.sql
Select "alter public synonym "object_name" compile;"
From user_objects
Where status <> "VALID"
And owner = "PUBLIC"
And object_type = "SYNONYM";
Spool off
@public_synonym.sql

Объекты подлежащие перекомпиляции

  • VIEW
  • SYNONYM
  • PUBLIC SYNONYM
  • PROCEDURE
  • FUNCTION
  • PACKAGE
  • PACKAGE BODY
  • TRIGGER
  • UNDEFINED (MATERIALIZED VIEW)
  • JAVA CLASS
  • TYPE
  • TYPE BODY

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 18.11.2009 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Oracle Database Standard Edition 2 Processor License
Oracle Database Personal Edition Named User Plus License
Oracle Database Personal Edition Named User Plus Software Update License & Support
Oracle Database Standard Edition 2 Named User Plus License
Zend Guard 1 Year Subscription
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Реестр Windows. Секреты работы на компьютере
СУБД Oracle "с нуля"
Windows и Office: новости и советы
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100