gpt4 book ai didi

oracle - 如何将数据从一个数据库/表复制到另一个数据库/表

转载 作者:行者123 更新时间:2023-12-04 01:45:13 25 4
gpt4 key购买 nike

我使用文档编写了以下查询:Oracle Documentation将一些数据从我的生产服务器上的数据库/表复制到 Sandbox 服务器上的数据库/表。
COPY FROM username1/passwd1@<production_IP> to username2/passwd2@<sandbox_IP> INSERT TABLE_C (*) USING
(SELECT * FROM TABLE_C WHERE COL_A = 4884);

但是,我经常遇到Connection failed错误。查询有什么问题吗?

最佳答案

在典型的 Oracle 环境中,您设置了 TNS 名称。这是一个服务,用于查找给定 SID 或服务名称的 Oracle 实例的连接参数。在最简单的形式中,TNS 名称是一个名为 tnsnames.ora 的文件。由环境变量 TNS_ADMIN 定位(指向文件所在的目录)。

给定 SID PRODSANDBOX ,然后您可以从 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;

关于oracle - 如何将数据从一个数据库/表复制到另一个数据库/表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8944156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com