zoukankan      html  css  js  c++  java
  • 利用trigger同步Oracle数据库

    oracle不同数据库之间进行同步数据时,可以用触发器来实现,但需要数据库A访问数据库B,那么可以通过创建数据连接来实现,代码如下:
    CREATE DATABASE LINK dblink_test
    CONNECT TO hantest IDENTIFIED BY hantest
    USING '(DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST=192.168.1.1)(PORT = 1521)))
    (CONNECT_DATA = (SERVICE_NAME = orcl)
    )
    )';
    其中hantest 为B数据的用户名和密码
    using的内容是B数据库的连接字符串
    创建成功后可以通过下列语句测试是否连接成功
    select loginno,loginpwd,name from t_user@dblink_test
     
    在A数据库与B数据库各创建一个表
    create table hanclasstest(
    classid number(2) primary key,
    classname varchar(10) not null
    );
     
    之后再A数据库hanclasstest创建触发器
     
    CREATE OR REPLACE TRIGGER TEST_TRIGGER
    AFTER DELETE OR INSERT OR UPDATE ON hanclasstest
    for each row
    BEGIN
    IF INSERTING THEN
    --INSERT触发
    insert into hanclasstest@dblink_test values(:new.classid,:new.classname);
    DBMS_OUTPUT.PUT_LINE('记录已经成功插入,并已记录到日志');
    ELSIF UPDATING THEN
    --UPDATE触发
     
    DBMS_OUTPUT.PUT_LINE('记录已经成功更新,并已记录到日志');
    ELSIF DELETING THEN
    --DELETE触发
     
    DBMS_OUTPUT.PUT_LINE('记录已经成功删除,并已记录到日志');
    END IF;
     
    END;
     
    在A数据库中的表hanclasstest 插入一条数据
    insert into hanclasstest values('1','一班');
     
     
    在A数据库查询B数据库中hanclasstest 的数据
    select * from hanclasstest@dblink_test
  • 相关阅读:
    WebService协议
    用实例揭示notify()和notifyAll()的本质区别 收藏
    深入Java集合学习系列:HashMap的实现原理
    Oracle 索引扫描的五种类型
    Spring 异常
    Spring MVC
    银行家算法
    Java内存模型与多线程
    Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解
    SpringMVC单元测试之MockMVC,模拟登入用户
  • 原文地址:https://www.cnblogs.com/hanshuhe/p/9889766.html
Copyright © 2011-2022 走看看