Trong môi trường Oracle điển hình, bạn có các tên TNS được thiết lập. Đó là một dịch vụ để tra cứu các tham số kết nối cho các phiên bản Oracle được cung cấp một SID hoặc tên dịch vụ. Ở dạng đơn giản nhất, tên TNS là một tệp có tên tnsnames.ora
được định vị bởi biến môi trường TNS_ADMIN
(trỏ đến thư mục chứa tệp).
Đưa ra các SID PROD
và SANDBOX
, sau đó bạn có thể sao chép các bảng từ tiện ích dòng lệnh SQLPLUS:
COPY FROM username1/[email protected] to username2/[email protected]
INSERT TABLE_C (*) USING (SELECT * FROM TABLE_C WHERE COL_A = 4884);
Xin lưu ý rằng lệnh COPY này chỉ hỗ trợ một tập hợp giới hạn kiểu dữ liệu Oracle:char, date, long, varchar2, number.
Nếu bạn chưa thiết lập tên TNS, bạn sẽ cần biết tên máy chủ hoặc địa chỉ IP, số cổng và tên dịch vụ. Cú pháp sau đó trở thành:
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);
Để xác định SID và / hoặc tên dịch vụ, tốt nhất bạn nên xem tệp TNSNAMES.ORA trên chính máy chủ cơ sở dữ liệu. Nếu bạn có thể đăng nhập vào cơ sở dữ liệu, bạn có thể sử dụng các truy vấn sau để xác định SID và tên dịch vụ (nhưng đừng hỏi tôi đó là tên nào):
select name from v$database;
select * from global_name;
select instance_number, instance_name, host_name from v$instance;