我有2个Oracle实例:
我在Oracle 1上创建了一个数据库链接,以便与Oracle 2连接。
我需要将Oracle中的表从Oracle 1复制到Oracle 2.是否可以?
请注意我知道:
create tmp_table as select * from table@oracle_2
但这将在Oracle 1中创建表而不是Oracle 2。
注意:我需要从Oracle 1执行此操作,因为我有许多Oracle实例,并希望以自动方式复制到这些实例,而无需登录到每个Oracle。
答案 0 :(得分:0)
命令
DateTime? dtStartFrom = null;
SqlParameter sqlDateparam = new SqlParameter("@dtStartFrom", SqlDbType.DateTime);
sqlDateparam.IsNullable = true;
if (dtStartFrom.HasValue)
sqlDateparam.Value = dtStartFrom.Value;
else
sqlDateparam.Value = DBNull.Value
var result = _context.Database.SqlQuery<DamageEventsDTL>("SPDamageEventsDTL @dtStartFrom", sqlDateparam).ToList();
会导致错误:
create tmp_table@oracle_2 as select * from table
所以您需要做的是连接到ORA-00901: invalid CREATE command
,并使用新创建的 oracle_2
db link!
oracle_1
答案 1 :(得分:0)
如果有多个表格,您应该尝试使用expdp
与NETWORK_LINK
这样的事情:
expdp test/test@oracle1 tables=tmp_table,tmp_table2 network_link=oracle_2 directory=TEST_DIR dumpfile=tmp.dmp logfile=expdptmp.log
答案 2 :(得分:0)
从user2/pwd@DB2
复制到SELECT * FROM tablename;
。并且,使用
{{1}}