Утилита SQL*Plus предлагает собственные средства копирования данных из одной базы данных в другую и из одной таблицы в другую. Для этого используется команда COPY, которая позволяет:
Примечание
В общем случае, предполагалось копирование данных между базой данных Oracle и базой данных другого производителя. В среде Oracle для копирования данных можно использовать SQL-операторы (CREATE TABLE AS и INSERT).
Команда COPY имеет следующий синтаксис:
<команда COPY> ::=
COPY <направление копирования> <действие копирования>
<имя целевой таблицы> [(<имя столбца>{, <имя столбца>})] USING <запрос>
<направление копирования> ::=
FROM <база данных>
| TO <база данных>
| FROM <база данных> TO <база данных>
<база данных> ::=
<имя пользователя>[/<пароль>]@<строка связи>
<действие копирования> ::=
APPEND | CREATE | INSERT | REPLACE
Она копирует данные, возвращаемые запросом, в таблицу в локальной или удаленной базе данных. Поддерживаются только базовые типы данных (CHAR, DATE, LONG, NUMBER, VARCHAR2) и в будущих версиях (после 9.0.1) поддержка этой команды не гарантируется.
Если в конструкции <база данных> пароль не указан, SQL*Plus запросит его перед выполнением команды.
Действия копирования описаны в .
Таблица 12. Действия копирования команды COPY.
Действие | Описание |
APPEND | Вставляет возвращенные запросом строки в целевую таблицу, если она существует. Если же таблица не существует, она создается. |
CREATE | Вставляет возвращенные запросом строки в целевую таблицу, предварительно создавая ее. Если же таблица уже существует, возвращается сообщение об ошибке. |
INSERT | Вставляет возвращенные запросом строки в целевую таблицу. Если таблица не существует, возвращается сообщение об ошибке. В список выбора запроса должно входить по одному столбцу для каждого столбца целевой таблицы. |
REPLACE | Заменяет целевую таблицу и ее содержимое строками, возвращенными запросом. Если целевая таблица не существует, она создается. В противном случае, существующая таблица удаляется и вместо нее создается новая, содержащая скопированные данные. |