我想把oracle数据库中一列数据通过循环语句挨个数据在用sql语句替换成另一个生成的数据

我想把oracle数据库中一列数据通过循环语句挨个数据在用sql语句替换成另一个生成的数据,第1张

最简单的方法,通过第三方工具plsql。
步骤:
1、登录表所在数据库及用户。
2、在左边的树找到要生成语句的表,比如emp表,在表名上点右键,出现下列菜单:
3、选择DBMS_元数据——>DDL
4、等待出结果即可。

数据类型都一样的么,可以考虑用触发器实现 以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字段代替
哎,没分啊

你数据有那么大,更新肯定是很慢的,你可以从下面两个方面考虑:
一、你要在3千万的数据里面查询,一定要走索引,就是对查询条件的字段建立索引
二、插入到的表和更新的表如果太大,如果插入非常频繁,可以插入取消部分索引。

declare
j number := 4;
k number := 0;
cursor cur_get_data is
select a1 from TableA;
begin
for i in cur_get_data
loop
update TableB
set TableBb2 = ia1
where TableBb1 <= j and TableBb1 >= k;
k := j;
j := j+ 5;
end loop;
end ;


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

原文地址: https://outofmemory.cn/yw/13375300.html

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

发表评论

登录后才能评论

评论列表(0条)

保存