baidu_32636153
baidu_32636153
采纳率50%
2018-04-10 08:30 阅读 6.1k

oracle中同一个库,不同的两个用户,怎么实现这两个用户中的一个表数据同步?

5

同一个数据库,但是有两个用户,这两个用户中有一个相同的表,怎么实现这两个表的数据同步?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

10条回答 默认 最新

  • NET_NDSC_WZP NET_NDSC_WZP 2018-04-10 09:07

    --假设是将 用户名1的表A 同步到 用户名2的表B

    --按以下流程:

    --用户名2登录后创建下面同存储过程
    CREATE OR REPLACE PROCEDURE SP_表数据同步 AS

    BEGIN
    --删除表数据
    EXECUTE IMMEDIATE 'TRUNCATE TABLE B';
    --插入表数据
    insert into B
    select * from 用户名1.A;
    commit;
    EXCEPTION
    WHEN OTHERS THEN
    ROLLBACK;
    END;

    --创建同步任务
    declare
    job_id pls_integer;
    begin
    sys.dbms_job.submit(job => job_id, what => 'SP_表数据同步;', next_date => to_date('10-04-2018', 'dd-mm-yyyy'), interval => 'TRUNC(SYSDATE + 1)');
    commit;
    end;

    /* job时间周期:
    每天运行一次 'SYSDATE + 1'
    每小时运行一次 'SYSDATE + 1/24'
    每10分钟运行一次 'SYSDATE + 10/(60*24)'
    每30秒运行一次 'SYSDATE + 30/(60*24*60)'
    每隔一星期运行一次 'SYSDATE + 7'*/

    点赞 1 评论 复制链接分享
  • qq_24225065 qq_24225065 2018-04-10 08:49

    1.同时操作同一个表就行了么
    2.定时备份

    点赞 评论 复制链接分享
  • czm_javaer czm_javaer 2018-04-10 09:45

    可以用kettle工具定时抽取,就算是不同库也可以解决

    点赞 评论 复制链接分享
  • lixiaozhen007 lixiaozhen007 2018-04-10 15:34

    知道一种方法,是自己操作的,实现同步,也就是再操作库的时候,生成一个sql文件,之后,执行就可以了;

    点赞 评论 复制链接分享
  • weixin_36597964 weixin_36597964 2018-04-11 01:01

    同时操作同一个表就行了么
    创建同步任务
    declare
    job_id pls_integer;
    begin
    sys.dbms_job.submit(job => job_id, what => 'SP_表数据同步;', next_date => to_date('10-04-2018', 'dd-mm-yyyy'), interval => 'TRUNC(SYSDATE + 1)');
    commit;
    end;

    点赞 评论 复制链接分享
  • spark077 spark077 2018-04-11 07:23

    个人觉得用存储过程是最佳选择。

    点赞 评论 复制链接分享
  • baoxge baoxge 2018-04-11 09:44

    给两个用户的表赋权限就可以了

    点赞 评论 复制链接分享
  • yxj00101 yxj00101 2018-04-16 07:40

    方法一、创建同义词

    方法二、将表赋权给用户 带上用户名操作

    方法三、赋权建立 视图

    点赞 评论 复制链接分享
  • qq_41364256 qq_41364256 2018-04-21 03:17

    在同一个库中,通过同义词或者视图实现是比较方便的。根据需求是双向同步还是单向同步,来授予不同权限。

    点赞 评论 复制链接分享
  • wkdamao wkdamao 2018-04-30 07:44

    没必要同步,看哪个是数据写入的,给读取的那个用户授权就可以了

    点赞 评论 复制链接分享

相关推荐