急,在线等!如何在两个oracle数据库之间的相同结构的两个表实现数据的同步更新,dblink已经建好了

急,在线等!如何在两个oracle数据库之间的相同结构的两个表实现数据的同步更新,dblink已经建好了,第1张

数据类型都一样的么,可以考虑用触发器实现 以oracle数据库为例 有两张表test和test01 字段有id name age sal

create or replace trigger TRIG_UPDATE_TEST

after insert or delete or update on test

for each row

declare

l_id varchar2(50);

l_name varchar2(50);

l_age number;

l_sal number;

begin

if(deleting or updating) then

delete test01

where id=:oldid;

if(deleting) then

return;

end if;

end if;

l_id:=:newid;

l_name:=:newname;

l_age:=:newage;

l_sal:=:newsal;

begin

insert into test01(id,name,age,sal) values(l_id,l_name,l_age,l_sal);

end;

end TRIG_UPDATE_TEST;

再简化点就是在触发器中不声明变量,直接用:new字段代替

哎,没分啊

oracle数据库多个update *** 作一张表会引起资源死锁

你是不是sql 语句后面加‘for update’了,如果有的话,你必须去掉,不然会锁定的。其他的update *** 作一张表不会引起资源死锁,你不commit,都是没记录的。

--先在2个DB之间建立dblink,然后可参考以下代码进行编写:

--说明:一般的更新都是增删改3个 *** 作,我这只写了改的 *** 作给你作参考。

Create Trigger tri_testabc

After Update On tb_student_db1 For Each Row

Declare

Begin

If updating Then

Update tb_score_db2@dblink Set

tb_score_db2stu_id = :Newstu_id

Where tb_score_db2tud_id = Oldsut_id;

End If;

Exception

When Others Then

--异常处理

Null;

End;

使用以下代码即可同时更新一个表中几个字段的值:

1update A

2SET (C1,C2,C3,C4)=(SELECT C1,C2,C3,C4 FROM B WHERE ID=AID)

一、Oracle数据库最新版本为Oracle Database 12c。Oracle数据库12c 引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。

二、Toad for Oracle是一款老牌的Oracle开发管理工具,比任何一款Oracle开发管理工具功能更多,并针对使用者不同的角色有多个分支版本。版本包括:Toad DBA Suite for Oracle是一款专门为Oracle DBA管理Oracle数据库工具, Toad Development Suite for Oracle是一款专门为Oracle开发工具, Toad DBA Suite for Oracle – Exadata Edition是一款专门为Oracle Exadata一体服务器及Oracle数据库管理工具, Toad DBA Suite for Oracle - RAC Edition是一款专门为Oracle搭建集群RAC的DBA管理工具。

C#利用update更新数据到oracle数据库:

第一步:打开oracle数据库

public static string connString = "";

public static OracleConnection conn = null;

//打开数据库连接

public static bool Open()

{

//从配置文件中获取连接字符串

//配置文件需要放在项目目录下的bin\Release中

connString = getXmlValue("connString");

conn = new OracleConnection(getXmlValue("connString"));

try

{

connOpen();

ConsoleWriteLine("数据库连接成功");

return true;

}

catch (SystemException ex)

{

ConsoleWrite(exMessage);

MessageBoxShow("未能连接到数据库");

return false;

}

第二步:执行更新方法:

public static int update(int ruleId, int equipmentId, String equipmentName, String propertyName, int ruleType, String ruleRequest, String ruleRequestOther, String ruleExplain)

{

String sql = "update Device_Attr t set tBASEID = :equipmentId, tBASENAME = :equipmentName,tCA_NAME = :propertyName,tCA_RULETYPE = :ruleType,tCA_RULETEXT = :ruleRequest,tCA_RULETEXT2 = :ruleRequestOther,tCONTENT = :ruleExplain where tCA_ID =:ruleId";

OracleCommand cmd = new OracleCommand(sql, conn);

OracleParameter param_1 = new OracleParameter(":equipmentId", equipmentId);

cmdParametersAdd(param_1);

OracleParameter param_2 = new OracleParameter(":equipmentName", equipmentName + "$");

cmdParametersAdd(param_2);

OracleParameter param_3 = new OracleParameter(":propertyName", propertyName);

cmdParametersAdd(param_3);

OracleParameter param_4 = new OracleParameter(":ruleType", ruleType);

cmdParametersAdd(param_4);

OracleParameter param_5 = new OracleParameter(":ruleRequest", ruleRequest);

cmdParametersAdd(param_5);

OracleParameter param_6 = new OracleParameter(":ruleRequestOther", ruleRequestOther);

cmdParametersAdd(param_6);

OracleParameter param_7 = new OracleParameter(":ruleExplain", ruleExplain);

cmdParametersAdd(param_7);

OracleParameter param_8 = new OracleParameter(":ruleId", ruleId);

cmdParametersAdd(param_8);

int result = cmdExecuteNonQuery();

return result;

}

以上就是关于急,在线等!如何在两个oracle数据库之间的相同结构的两个表实现数据的同步更新,dblink已经建好了全部的内容,包括:急,在线等!如何在两个oracle数据库之间的相同结构的两个表实现数据的同步更新,dblink已经建好了、oracle数据库多个update *** 作一张表会引起资源死锁吗、Oracle 利用触发器在2个数据库之间同步进行update等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9714372.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存