Копирование данных между схемами Oracle с помощью SQL

Я пытаюсь скопировать данные из одной схемы Oracle (CORE_DATA) в другую (MY_DATA) С помощью INSERT INTO (...) оператор SQL.

как будет выглядеть оператор SQL?

3 ответов


префикс ваших имен таблиц с именами схем при входе в систему как пользователь с доступом к обоим:

insert into MY_DATA.table_name select * from CORE_DATA.table_name;

предполагая, что таблицы определены одинаково в обеих схемах, выше будут копировать все записи из таблицы с именем table_name в CORE_DATA в таблицу с именем table_name в MY_DATA.


usage: COPY FROM [db] TO [db] [opt] [table] { ([cols]) } USING [sel]

  [db]   : database schema string, e.g., grprass/grprass@grprass, pplan/pplan@prassm1
  [opt]  : ONE of the keywords: APPEND, CREATE, INSERT or REPLACE
  [table]: name of the destination table
  [cols] : a comma-separated list of destination column aliases ( optional )
  [sel]  : any valid SQL SELECT statement

SQL> COPY FROM scott/tiger@schema1 TO scott/tiger@schema2 insert mytable using select * from mytable;

ваша схема должна иметь grant create любую привилегию таблицы для этого