|
|
|
Восстановление пакетов с другой базы
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. В общем я немного накосячил и дропнул несколько пакетов с базы разработчиков. Благо есть точно такая же база для тестировщиков. Мне нужно восстановить пакеты. Пакетов около сотни. Я могу заселектить тела пакетов из словаря User_Source. Склеить куски тела пакета с помощью функции listagg, и выгрузить в формате csv через IDE(PL/SQL Developer). Немного поправить файлы руками, и готово. Но это какая-то полу-автоматизация. Хотелось бы полностью автоматизировать процесс, чтобы не делать какие-либо действия руками. Чтобы на выходе в каталоге у меня был список: package_1.sql package_2.sql package_N.sql 1. Как это можно реализовать? 2. Может предложите ещё какие-нибудь пути восстановления пакетов с другой базы? Просить админа накатывать дамп очень нежелательно, на базе есть какие-то наработки/разработки разработчиков других модулей. В крайнем случае можно открыть IDEшку в два окна, и через копировать/вставить/скомпилировать восстановить все пакеты. Если автоматизировать не получится, то буду восстанавливать руками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2018, 11:23 |
|
||
|
Восстановление пакетов с другой базы
|
|||
|---|---|---|---|
|
#18+
Исходники нужно хранить в виде скриптов, а не в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2018, 11:36 |
|
||
|
Восстановление пакетов с другой базы
|
|||
|---|---|---|---|
|
#18+
IMNOСклеить куски тела пакета с помощью функции listaggНу-ну. IMNOнакатывать дамп выбрать только определенные типы объектов. Если сервера не изолированы сетью, делается в несколько plsql-строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2018, 11:36 |
|
||
|
Восстановление пакетов с другой базы
|
|||
|---|---|---|---|
|
#18+
ElicИсходники нужно хранить в виде скриптов, а не в БД. Ах да, забыл написать про контроль версий. Пакеты очень древние. Контроль версий имеется, но конкретно свежих версий дропнутых пакетов там нет. Есть какое-то старьё написанное ещё на SQL Server 2007. На этом всё. Собственно почему я и хочу восстанавливать из другой базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2018, 11:38 |
|
||
|
Восстановление пакетов с другой базы
|
|||
|---|---|---|---|
|
#18+
exp[dp]/imp[dp] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2018, 12:21 |
|
||
|
Восстановление пакетов с другой базы
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2018, 13:17 |
|
||
|
Восстановление пакетов с другой базы
|
|||
|---|---|---|---|
|
#18+
IMNOНемного поправить файлы руками, и готово. Но без файлов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2018, 13:48 |
|
||
|
Восстановление пакетов с другой базы
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудровexp[dp]/imp[dp] Пока гуглил про то, как пользоваться утилитами импорта и экспорта, наткнулся на dbms_metadat.get_ddl(). Написал два скрипта: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. На той схеме(Scheme_Two), где пакеты присутствуют, создал таблицу с наименованиями(DropedPacks) дропнутых пакетов. На той схеме, где пакеты отсутствуют, создал таблицу со столбцом типа CLOB для тел дропнутых пакетов. В первом скрипте в сессии на Scheme_Two закачал тела пакетов в первую схему. 1. Перехожу в сессию на первую схему Scheme_One. 2. Во втором скрипте заменил наименование схемы в каждом пакете. 3. Заменил наименование пакетов на наименование без кавычек. 4. Разделил спецификацию и тело пакета. У меня почему-то спецификация и тело не компилировались в одном вызове. 5. 15 - это магическое число. После перекачки пакетов из одной схемы на другую появляются пробелы, которые мешают SUBSTR(). Природу этих пробелов мне выяснить не удалось. Всем спасибо большое. Всё получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2018, 14:41 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=95&tid=1883211]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 221ms |
| total: | 370ms |

| 0 / 0 |
