[英]Copy data from one table to another - Oracle
我正在使用Oracle.ManagedDataAccess从C#连接到Oracle DB。
我需要:
基本上,我需要将3种不同模式中的表中的所有数据(每个使用不同的凭据)复制到第四种模式中的一个表中。 我不需要在从架构A / B / C读取数据并将其插入X之间进行修改的数据-只是一个直接副本。 所有4个表都具有相同的结构(DDL)。
我当时在考虑使用3个数据集作为中间步骤,但也许可以更轻松地完成?
这可以完全在数据库中完成,而无需通过外部应用程序。
从具有适当权限的用户授予对A
, B
和C
权限:
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.