在典型的Oracle環境中,您設置了TNS名稱。這是一個服務,用於查找給定SID或服務名稱的Oracle實例的連接參數。以最簡單的形式,TNS名稱是一個名爲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數據類型:字符,日期, 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;
目標表是否已經存在? – tallybear
'production_IP'代表IP地址嗎?如果是,那還不夠。您需要設置TNS名稱並使用SID或服務名稱,或使用簡單連接名稱(其中也包含SID或服務名稱)。 – Codo
@tallybear:是的 –