• 全部
  • Oracle 基础和管理
  • Oracle 高级技术
  • Oracle 认证与考试
  • 职位交流
  • 问答

触发器中是否可以使用动态循环结构插入修改数据??实现如下功能

waxle 清华大学水沙科学国家重点实验室 2004-08-13 02:43:38
触发器中是否可以先在某个表中统计数据,然后根据统计的数据决定另外一个表中要插入或修改的记录数,然后循环插入数据。
总而言之就是触发器中是否可以使用循环语句。
比如
declare aa number;
select count(*) into aa from table_name where(````);

然后用循环语句写入数据
比如visual basic中的格式就是
for loop1=1 to aa


next
这样的功能在pl/sql触发器或者存储过程中能够实现??哪里有这方面的资料??
...全文
171 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
waxle 2004-08-13
循环结构好像也可以用的
回复
awolf168 2004-08-13
最近正好用到如下,希望有所帮助:
CREATE TRIGGER TRIG_OPERATION
AFTER INSERT ON AUTHOPERATION FOR EACH ROW
DECLARE
--定义变量
OperationId varchar2(15) := :new.OperationId;
aAppTypeId varchar2(15) := :new.AppTypeId;
tFlowId varchar2(15);
--定义游标
CURSOR cur_operation
is
select FlowId
from authflow
where authflow.flowtemplateid =
(
select apptype.flowtemplateid
from apptype
where apptype.apptypeid = aAppTypeId
)
order by flowid asc;
BEGIN
--打开游标
open cur_operation;
--取出数据
fetch cur_operation into tFlowId;
--循环
while cur_operation%found
loop
INSERT INTO AUTHAUTHORIZE VALUES('',OperationId,tFlowId,'','','','','','','','','-1');
fetch cur_operation into tFlowId;
end loop;
--关闭游标
close cur_operation;
END;
/
实现功能是取得flowid,然后将flowid和其他的一些值循环插入到AUTHAUTHORIZE表里面来(循环次数为取得flowid的个数).
回复
dinya2003 2004-08-13
可以实现,用游标:
cursor c is select .......
begin
open c;
loop
fetch c into ...;
exit when c%notfound;
....
end loop;
close c;
.....
end;
回复
发帖
Oracle
创建于2007-09-28

1.6w+

社区成员

Oracle开发相关技术讨论
申请成为版主
帖子事件
创建了帖子
2004-08-13 02:43
社区公告
暂无公告