繁体   English   中英

将数据从一个表复制到另一个表-Oracle

[英]Copy data from one table to another - Oracle

我正在使用Oracle.ManagedDataAccess从C#连接到Oracle DB。

我需要:

  1. 连接到模式A,从表T中读取所有行,并将它们全部插入到模式X中的表T中
  2. 连接到模式B,从表T中读取所有行,并将它们全部插入到模式X中的表T中
  3. 连接到模式C,从表T中读取所有行,并将它们全部插入到模式X中的表T中

基本上,我需要将3种不同模式中的表中的所有数据(每个使用不同的凭据)复制到第四种模式中的一个表中。 我不需要在从架构A / B / C读取数据并将其插入X之间进行修改的数据-只是一个直接副本。 所有4个表都具有相同的结构(DDL)。

我当时在考虑使用3个数据集作为中间步骤,但也许可以更轻松地完成?

这可以完全在数据库中完成,而无需通过外部应用程序。

从具有适当权限的用户授予对ABC权限:

GRANT SELECT ON A.T TO X;
GRANT SELECT ON B.T TO X;
GRANT SELECT ON C.T TO X;

来自用户X

INSERT INTO X.T
SELECT * FROM A.T;

INSERT INTO X.T
SELECT * FROM B.T;

INSERT INTO X.T
SELECT * FROM C.T;

或作为单个语句:

INSERT INTO X.T
SELECT * FROM A.T UNION ALL
SELECT * FROM B.T UNION ALL
SELECT * FROM C.T;

来自具有适当权限的第一个用户:

REVOKE SELECT ON A.T FROM X;
REVOKE SELECT ON B.T FROM X;
REVOKE SELECT ON C.T FROM X;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM