数据类型都一样的么,可以考虑用触发器实现 以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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)