В типична среда на Oracle имате зададени TNS имена. Това е услуга за търсене на параметрите на връзката за екземпляри на Oracle, дадени SID или име на услуга. В най-простата си форма TNS names е файл, наречен tnsnames.ora
разположен от променливата на средата TNS_ADMIN
(което сочи към директорията, където е файлът).
Предвид SID PROD
и SANDBOX
, след това можете да копирате таблиците от помощната програма за команден ред SQLPLUS:
COPY FROM username1/[email protected] to username2/[email protected]
INSERT TABLE_C (*) USING (SELECT * FROM TABLE_C WHERE COL_A = 4884);
Моля, обърнете внимание, че тази команда COPY поддържа само ограничен набор от типове данни на Oracle:char, date, long, varchar2, number.
Ако не сте настроили TNS имена, ще трябва да знаете името на хоста или IP адреса, номера на порта и името на услугата. Тогава синтаксисът става:
COPY FROM username1/[email protected]//192.168.3.17:1521/PROD_SERVICE to username2/[email protected]//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;