将表从1 Oracle复制到另一个Oracle实例

时间:2016-07-28 07:44:03

标签: oracle

我有2个Oracle实例:

  • Oracle 1
  • Oracle 2

我在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。

3 个答案:

答案 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)

如果有多个表格,您应该尝试使用expdpNETWORK_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}}