Программирование >>  Oracle 

1 ... 127 128 129 [ 130 ] 131 132 133 ... 469


Импорт и экспорт 419

set trimspool on set verify off spool &1..sql prompt set define off

selectdecode(type -to char(line, fm99999) , PACKAGE BODY-1 , /chr(10) ,

null)

decode(line,1,create or replace , ) text text from user source where name = upper(&&1) order by type, line; prompt /

prompt set define on

spool off

set feedback on

set heading on

set termout on

set linesize 100

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

Сначала он создаст по файлу для каждого хранимого объекта PL/SQL в текущем каталоге, а затем - сценарий getallcode INSTALL, который будет автоматически устанавливать весь этот код в другой схеме:

set termout off set heading off set feedback off set linesize 50 spool xtmpx.sql

select ©getcode object name from user objects

where object type in (PROCEDURE, FUNCTION, PACKAGE) /

spool off

spool getallcode INSTALL.sql select © object name from user objects

where object type in (PROCEDURE , FUNCTION, PACKAGE) /

spool off

set heading on

set feedback on

set linesize 130

set termout on

©xtmpx.sql

Следующий сценарий позволяет выбрать код одного представления. Если выполнить команду SQL> @getaview view name, он создаст в текущем каталоге файл view name.sql, содержащий оператор CREATE VIEW:



Глава 8

REM getaview.sql set heading off set long 99999999 set feedback off set linesize 1000 set trimspool on set verify off set termout off set embedded on

column column name format Al000 column text format Al000

spool &1..sql

prompt create or replace view 41 (

select decode (column id,l ,) column name column name from user tab colunms where table name = upper(&1) order by column id

prompt ) as select text

from user views where view name = upper(&1)

prompt / spool off

set termout on set heading on set feedback on set verify on

Конечно, если необходимо получить все представления, можно использовать CL рий getallviews:

set heading off

set feedback off

set linesize 1000

set trimspool on

set verify off

set termout off

set embedded on

spool tmp.sql

select ©getaview view name from user views

spool off

set termout on set heading on set feedback on set verify on @tmp



Импорт и экспорт 421

Наконец, имеется сценарий gettrig.sql. Он обрабатывает не все триггеры. Например, я не извлекаю конструкцию referencing OLD as поскольку никогда ее не использую. Идея - та же, что и в представленных ранее сценариях; этот сценарий очень легко изменить, если необходимо использовать корреляционные имена:

set echo off

set verify off

set feedback off

set termout off

set heading off

set pagesize 0

set long 99999999

spool &1..sql select

create or replace trigger

trigger name chr(10) decode(substr(trigger type, 1, 1),

A, AFTER, B, BEFORE, I, INSTEAD OF)

chr(10)

triggering event chr (10) ON table owner .

table name chr(10)

decode(instr( trigger type, EACH ROW) , 0, null, FOR EACH ROW) chr(10),

trigger body from user triggers where trigger name = upper(&1)

prompt /

spool off set verify on set feedback on set termout on set heading on

Итак, мы показали, как с помощью утилит EXP/IMP получать операторы ЯОД для таблиц и индексов, занимающих определенное место на диске. Для объектов, много места не занимающих, в том числе триггеров, хранимых процедур, представлений, последовательностей, синонимов и т.д., больше подходят простые сценарии SQL*Plus. Утилиту IMP с параметром SHOW=Y можно использовать как последнее средство спасения, но если получать код требуется постоянно, лучше использовать сценарий.

Резервное копирование и восстановление

Утилиты ЕХР и IMP не следует использовать для резервного копирования и восстановления. Реальные резервные копии позволяет создавать только утилита RMAN и операционная система. Утилиты EXP/IMP не стоит использовать как средства резервного копирования по следующим причинам.



1 ... 127 128 129 [ 130 ] 131 132 133 ... 469

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика