首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

oracal 任务 存储过程 亟需commit或者rollback吗

2012-12-27 
oracal 任务 存储过程 需要commit或者rollback吗我写了个存储过程,里面有insert、update、delete语句。做了个

oracal 任务 存储过程 需要commit或者rollback吗
我写了个存储过程,里面有insert、update、delete语句。做了个任务定时执行这个存储过程。过程如下:
create or replace procedure protest
is
begin
    update tb1 set a1='1';
    insert into tb2(b1) values('1');
    delete from  tb3;
end protest;
没在每个语句后面写commit,执行后会有效吗?
[最优解释]
看你的事务大小
太频繁的commit会影响性能!!
可以不写的
[其他解释]
要写commit
[其他解释]
最有效的办法,写完后测试一下就知道了呀。。。
我认为是要 COMMIT的
[其他解释]

引用:
要写commit
我那么写看到数据有执行成功的。难道是假象。没写的话会怎么样
[其他解释]
不写commit 除非提升了用户权限,才可能自动提交事务,而且需要分别配置 Insert update delete 的自动提交
[其他解释]
哦。我在里面写commit了。原来我没写的时候是全部执行完才可以看到结果。我现在想在一个数据库中通过
EXECUTE   IMMEDIATE 'truncate table dbuser.tb1;这个语句对另一个数据库表做删除操作。提示我权限不足。该怎么赋权限的
[其他解释]
grant delete any table to 用户
授予这个权限应该就可以了,你试试
[其他解释]
引用:
grant delete any table to 用户
授予这个权限应该就可以了,你试试
不行的。这个我用过了。因为在美没索引的情况下,用truncate table 效率高点。所以我就用trunate了。truncate table dbuser.tb1 不能直接写在存储过程里要用EXECUTE   IMMEDIATE。但是权限又不够
[其他解释]
grant truncate any table to 用户

[其他解释]
引用:
grant truncate any table to 用户
这个样写不行
[其他解释]
grant drop any table to 用户

热点排行