Как экспортировать выбранные функции, выбранные процедуры, выбранные представления и выбранные таблицы только из базы данных Oracle с помощью командной строки? - PullRequest
0 голосов
/ 09 ноября 2018

Предположим, я хочу экспортировать

  • Просмотры с именами V1, V2
  • Функции с именами f1, f2
  • Процедуры с именами p1, p2
  • Таблицы с именами T1, T2

  • имя пользователя: система

  • пароль: менеджер sid /
  • схема: DB3

Итак, я запускаю команду на CMD следующим образом,

(1) expdp system / manager @ DB3 directory = backupdir dumpfile = backup.dmp logfile = backup.log include = view: "IN ('V1', 'V2')", функция: "IN ('f1' , 'f2') ", процедура:" IN ('p1', 'p2') ", таблица:" IN ('T1', 'T2') "

(2) expdp system / manager @ DB3 directory = backupdir dumpfile = backup.dmp logfile = backup.log include = view: "IN ('V1', 'V2')" include = функция: "IN ('f1 ',' f2 ') "include = процедура:" IN (' p1 ',' p2 ') "include = таблица:" IN (' T1 ',' T2 ') "

Эти обе команды не работают:

Ошибка: ORA-39071: значение для INCLUDE сформировано неверно.


Следующая команда работает, но экспортирует только указанные таблицы. Он не экспортирует представления, процедуры и функции.

(3) expdp system / manager @ DB3 directory = backupdir dumpfile = backup.dmp logfile = backup.log include = представление, процедура, функция, таблица: "IN ('T1', 'T2')"

Что делать?

1 Ответ

0 голосов
/ 09 ноября 2018

ORA-39071: значение для INCLUDE неверно сформировано

Командная строка не любит кавычки.Есть два способа справиться с этим.

Первый - экранировать кавычки:

expdp system/manager@DB3 directory=backupdir dumpfile=backup.dmp logfile=backup.log 
include=view:\"IN (\'V1\',\'V2\')\" include=function:\"IN (\'f1\',\'f2\')\" include=procedure:\"IN (\'p1\',\'p2\')\" include=table:\"IN (\'T1\',\'T2\')\"

Если это кажется утомительным (и это так), вторым вариантом будет определение файла параметров.,Вы можете включить в нее все свои параметры, не экранируя кавычки, и просто запустить expdp с параметром PARFILE.


В схеме 'DBpractice' нет никаких изменений, в которые я хочу импортировать таблицы, представления, функции и процедуры, которые были экспортированы из схемы с именем DB3.

Это действительно новый вопрос, но решение достаточно простое: вам нужно запустить impdp с параметром REMAP_SCHEMA, который принимает source_schema:target_schema.Так что в вашем случае это будет

impdp system/manager directory=backupdir dumpfile=backup.dmp remap_schema=db3:DBpractice
...