请各位兄台帮个忙,小弟接触ORACLE不知,现在急用2个存储过程
存储过程1:根据用户ID把此用户的所有信息删除,每1000条就commit一次.返回成功是否的标致;存储过程2:通过外部传入一个大字符串,然后利后果oracle的函数分解,插入到数据库中,也是要1000
条commit一次.也是要求返回成功是否的标致(最好能在这里面判断有则更新,没有就插入的功能呢)
谢谢各位兄弟了!
分不够会再加!
存储过程1:根据用户ID把此用户的所有信息删除,每1000条就commit一次.返回成功是否的标致;存储过程2:通过外部传入一个大字符串,然后利后果oracle的函数分解,插入到数据库中,也是要1000
条commit一次.也是要求返回成功是否的标致(最好能在这里面判断有则更新,没有就插入的功能呢)
谢谢各位兄弟了!
分不够会再加!
SELECT T_DATE FROM tab1 WHERE extract(MONTH FROM T_DATE) = 10;BEGIN
OPEN c1;
LOOP
FETCH c1 BULK COLLECT INTO T_DATE_array LIMIT 1000; --一次删除1000条
FORALL i IN T_DATE_array.FIRST .. T_DATE_array.LAST
DELETE FROM tab1 WHERE T_DATE = T_DATE_array(i);
EXIT WHEN c1%NOTFOUND;
END LOOP; CLOSE c1; COMMIT;EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END bulkdelete;第二个问题看的不是很明白,分批量插入则跟上面方法类似,如果判断有则更新,没有就插入的功能,可以用merge into语句
如下:
A1,B1,C1,D1#A2,B2,C2,D2#A3,B3,C3,D3分解后与组合:
insert into table1(f1,f2,f3,f4)values(A1,B1,C1,D1)
insert into table1(f1,f2,f3,f4)values(A2,B2,C2,D2)
insert into table1(f1,f2,f3,f4)values(A3,B3,C3,D3)谢谢各位帮忙了!!
就是利用#这个来做分解吧!!