В типичной среде Oracle у вас настроены имена TNS. Это служба для поиска параметров соединения для экземпляров Oracle с указанным SID или именем службы. В простейшей форме имена TNS - это файл с именем tnsnames.ora
, расположенный в переменной окружения TNS_ADMIN
(которая указывает на каталог, где находится файл).
Учитывая SID PROD
и SANDBOX
, вы можете скопировать таблицы из утилиты командной строки SQLPLUS:
COPY FROM username1/passwd1@PROD to username2/passwd2@SANDBOX
INSERT TABLE_C (*) USING (SELECT * FROM TABLE_C WHERE COL_A = 4884);
Обратите внимание, что эта команда COPY поддерживает только ограниченный набор типов данных Oracle: char, date, long, varchar2, number.
Если у вас не настроены имена TNS, вам нужно знать имя хоста или IP-адрес, номер порта и имя службы. Синтаксис становится следующим:
COPY FROM username1/passwd1@//192.168.3.17:1521/PROD_SERVICE to username2/passwd2@//192.168.4.17:1521/SANDBOX_SERVICE
INSERT TABLE_C (*) USING (SELECT * FROM TABLE_C WHERE COL_A = 4884);
Чтобы определить SID и / или имя службы, лучше всего заглянуть в файл TNSNAMES.ORA на самом сервере базы данных. Если вы можете войти в базу данных, вы можете использовать следующие запросы для определения SID и имени службы (но не спрашивайте меня, какой именно):
select name from v$database;
select * from global_name;
select instance_number, instance_name, host_name from v$instance;