oracle批量插入数据语句 40
目前是3个表分别为A、B、C,其中B有C的主键、B有A的主键。A中有字段id、mb,B中有字段id、Aid、Cid,C中有字段id、nr。需要满足的条件是selectA....
目前是3个表分别为A、B、C,其中B有C的主键、B有A的主键。A中有字段id、mb,B中有字段id、Aid、Cid,C中有字段id、nr。
需要满足的条件是select A.mb form A where A.id in ( select B.Aid form B.Cid =(select C.id form C where nr='某条件' ) );
目的是要把某一格式的字符串递增插入A表满足条件的mb中,格式如:CS01-02-2012000001、CS01-02-2012000002、CS01-02-2012000003。。。依次递增。
请大侠帮忙如何写该语句,谢谢! 展开
需要满足的条件是select A.mb form A where A.id in ( select B.Aid form B.Cid =(select C.id form C where nr='某条件' ) );
目的是要把某一格式的字符串递增插入A表满足条件的mb中,格式如:CS01-02-2012000001、CS01-02-2012000002、CS01-02-2012000003。。。依次递增。
请大侠帮忙如何写该语句,谢谢! 展开
展开全部
不知道那个格式的值是从哪里冒出来的。如果是把满足条件的值插入到mb中,应该这么写:
Update A set mb=那个格式 where id in (select Aid form B,C where B.Cid=C.id and nr='某条件' ) ;
Update A set mb=那个格式 where id in (select Aid form B,C where B.Cid=C.id and nr='某条件' ) ;
更多追问追答
追问
格式就是一个字符串递增,不是从哪里来的,按这个格式递增插入就行了。你这样,没法递增!
追答
declare
i int:=0
corsor c1 is select id from A
where id in (select Aid form B,C where B.Cid=C.id and nr='某条件' )
order by id for update of mb;
v_id int;
begin
open c1;
loop
fetch c1 into v_id;
exit when c1%notfound;
i:=i+1;
Update A set mb='CS01-02-201200000'||to_char(i) where current of c1;
end loop;
close c1;
commit;
end;
今至电子科技有限公司
2024-08-23 广告
2024-08-23 广告
数据库备份是确保数据安全与业务连续性的关键环节。我们上海今至电子科技有限公司高度重视数据保护,定期执行全面的数据库备份策略。这包括使用先进工具和技术,对关键业务数据进行自动化备份,并存储在安全可靠的外部存储介质或云端。通过定期验证备份的完整...
点击进入详情页
本回答由今至电子科技有限公司提供
2012-12-13
展开全部
一个SQL搞定还是写一个存储过程搞定?递增的字符串可以用序列么?
追问
SQL和存储过程都可以,只要搞定就行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询