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
  • 相关阅读:
    .net从后台返回js的提示框
    使用IntelliTrace的独立收集器帮助测试应用程序
    NuGet笔记
    使用.dmp+vs分析异常
    windbg笔记
    C# 删除文件、文件到到回收站及异常判断
    .Net利用反射调用DLL时,被调用DLL引用其它库问题
    C#中设置窗口圆角样式
    C# 中引用IHTMLDocument2
    c# 单实例运行
  • 原文地址:https://www.cnblogs.com/hanshuhe/p/9889766.html
Copyright © 2011-2022 走看看