(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 Personal Edition Named User Plus Software Update License & Support
Oracle Database Standard Edition 2 Named User Plus License
Oracle Database Standard Edition 2 Processor License
Oracle Database Personal Edition Named User Plus License
Quest Software. Toad for SQL Server Development Suite
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Работа в Windows и новости компании Microsoft
Corel DRAW - от идеи до реализации
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100