从a表里查出id=1的记录,把这些记录写入b表
然后把这些记录的flag字段改成F(a表里的)
这个过程怎么写
然后把这些记录的flag字段改成F(a表里的)
这个过程怎么写
解决方案 »
- 两表更新这样写有优化余地吗?
- 麻烦各位高手了,我这条存储过程转换成通用的存储过程啊?
- oracle wrap
- 请教scn的概念
- 请教 LINUX下的ORACLE9i(参与就有分)
- 郁闷,狂郁闷的……~~,如何把pdm文件(用powerDesire设计的数据库文件)导成纯文本文件??是在不行,还可以…………
- oracle中,设定varchar2长度为4000,(最大只能存4000),为什么存到1333就不行了,多一个都不行,报 ORA-01480:trailling missing from STR bin
- 请问新装Oracle 8i后各个程序需要的用户名和口令是...?
- 如何删除一个表空间文件啊?
- 连接数据库报错
- 查询问题,感觉很难,寻求高手帮助
- oci 储存过程返回空值的问题
为什么还要写过程呢,不用那么麻烦了吧。
好像不行吧,他这里还有个把这些记录的flag字段改成F(a表里的)
select * from a where id=1;
update a set flag=f where id=1;
CREATE OR REPLACE PROCEDURE PRO_TEST IS
BEGIN
INSERT INTO B
SELECT * FROM A WHERE ID = 1;
UPDATE A SET FLAG = F WHERE ID = 1;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END PRO_TEST;
请问执行完了INSERT INTO B.....这行(假设数据量大,次语句执行时间长),碰巧a表数据发生变动,然后过程继续执行UPDATE A......,这时数据就不同步了,怎么避免出现这种情况?