更新存储过程需要提交吗
㈠ Oracle存储过程中需要写commit吗
这个完全看你自己的需求。
如果是你不需要再存储过程中进行提交,而是由调用程序负责提交或者回滚,那么不需要再存储过程中commit或者rollback
如果你不想由调用程序负责提交或者回滚,那么应该在存储过程中进行commit或rollback
㈡ 关于plsql!!!
首先,要弄清SQL语句分五大类:数据定义语句、数据操纵语句、数据查询语句、事务控制语句、数据控制语句。
其中,数据定义语句(CREATE、ALTER、DROP)带有自动提交功能。
数据操纵语句(INSERT、UPDATE、DELETE)不带自动提交功能。
其次,SQL*PLUS、PL/SQL中,除了正常提交COMMIT(F10)、数据定义语句意外,无论什么方式退出SQL*PLUS、PL/SQL(除了突然掉电)都带有提交功能。
㈢ oracle存储过程执行三条sql语句都是不需要提交的比如创建表,或者表分区,如果执行到第三条出错
不能的。
建表和分区属于DDL语句,DDL语句是自动COMMIT的。不能回滚。
㈣ 存储过程中需要写commit吗
如果只是存储过程中执行的话,对于更新、删除操纵是一定要写commit的。另外可以在pl/sql客户端中对存储过程进行test测试,可以详细看到存储过程的执行过程。
㈤ Oracle 每天要对很多大表更新数据,写了一个批量提交的存储过程,多个表能同时调用这个批量脚本吗
当然可以,不过需要使用大量的动态sql或者 ref cursor。需要设计好。
㈥ 一个存储过程中更新多个表可以用一个COMMIT吗
技术上是可以的,原则建议。
一般情况下事务有原子性,如果要一起执行的语句放在事务中提交,达到这些语句的“同步”,要不都不执行,要不都执行。显然,这里是可以放在一起的让其执行的。
但语句中很明显涉及了更新插入等相关操作,此进需要在事务上加排他锁,这样会导致数据库的并发性下降,所以对于事务我们一般会选用的是执行较快的几组语句入在一起的。一般事务较为短小,至少执行速 度会很快。
假定,我是说假定,如果 有一个事务需要执行的时间是一天,由于事务中有更新语句,所以事务加了排他锁,其他事务与程序只有等待。这样可想你的数据库不能再接受任何外部的调用了。也就是说如果你的程序执行过长,最好不要使用事务。
所以在事务语句中是不允许进行数据库的压缩,创建,等耗时较高的操作的,这是SQL中规定的!
㈦ Oracle存储过程中需要写commit吗
需要,不提交你写进去的数据库不承认。
当然你也可以用
的绿色三角形来提交
㈧ oracle存储过程中update语句的提交问题
后面是必须跟commit的,
看下是不是打开了自动提交
show autocommit;
如果是on的话,就能解释你这个是什么情况了。
还有就是你在执行之后是不是做了用户切换,切换用户,用的是connect命令,是会提交事务的。
㈨ oracle存储过程中update语句的提交问题
后面是必须跟commit的,
看下是不是打开了自动提交
show
autocommit;
如果是on的话,就能解释你这个是什么情况了。
还有就是你在执行之后是不是做了用户切换,切换用户,用的是connect命令,是会提交事务的。
㈩ Oracle存储过程,更新大量数据,如何循环分批次提交
可通过以下方法:
以100条数据为例,如果海量数据可参考。
如test表中有如下数据:
declare
iint;--定义变量
v_countint;--定义变量
v_loopint;--定义变量
begin
selectcount(*)intov_countfromtest;--计算表内数据总数
selectceil(v_count/10)intov_loopfromal;--计算需要循环次数
i:=1;--为i赋值
whilei<=v_looploop--循环退出条件
updatetestsetbegintime=<=10;--执行更新
commit;--提交
i:=i+1;--i依次加1
endloop;--结束循环
end;