当前位置:首页 » 存储配置 » oracle给存储过程加锁

oracle给存储过程加锁

发布时间: 2023-07-18 23:03:52

① Oracle怎么显式开启事务,开始事务跟锁有什么关系,在存储过程中有时怎么开启和提交,回滚事务的

oracle使用语句savepoint sp_begintran开启显式事务,锁本身和事务是没有关系的,只要是数据库的操作都会产生锁。处于事务中的sql语句只有这个事务提交(commit)之后,事务中的SQL语句影响的表记录上的锁才会释放。锁常见有共享锁(select语句产生)和排它锁(DML语句产生),如果一个表上加载有共享锁,还可以叠加共享锁,但不能叠加排它锁。如果一个表上加载有排他锁,就什么锁都不能加了,也就是说如果DML语句占用过多的时间,这些数据库效率就不高,就需要优化,当然select语句性能低了也不行。
每个存储过程可以不用显式事务,它本身就为你开启了一个隐式事务,如果需要开启显示事务,就通过savepoint sp_begintran开启,无论是不是显式还是隐式事务,你都得通过commit work提交事务,通过exception捕捉SQL语句异常,在异常发生时需要回滚事务(rollback work)。

② 如何给Oracle存储过程内部加锁,调用时,如果被锁定就等待10秒,否则调用,调用结束后释放资源

数据库不是拿来这样玩的

③ 如何对Oracle存储过程加密

在PL/SQLdeveloper中先执行包头、然后再wrap加密包体

SQL>createorreplacepackagepkg_wrap_testis
2--测试过程,将输入的数字以字符格式输出
3proceretest1(iinnumber);
4ENDpkg_wrap_test;
5/

④ oracle的存储过程怎么写,牵涉到oracle的加密解密

貌似一个更新语句就可以了吧?
update a_person set nickname=case when mobile is not null then substr(utl_raw.cast_to_varchar2(utl_encode.base64_decode(utl_raw.cast_to_raw(mobile))),2) else email end where nickname is null;

⑤ ORACLE 存储过程被锁,编译不了,怎么解锁

一些ORACLE中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。现在提供一种方法解决这种问题,那就是在ORACLE中杀不掉的,在OS一级再杀。
1.下面的语句用来查询哪些对象被锁:
select object_name,machine,s.sid,s.serial#
from v$locked_object l,dba_objects o ,v$session s
where l.object_id=o.object_id and l.session_id=s.sid;
2.下面的语句用来杀死一个进程:
alter system kill session '24,111'; (其中24,111分别是上面查询出的sid,serial#)
【注】以上两步,可以通过Oracle的管理控制台来执行。
3.如果利用上面的命令杀死一个进程后,进程状态被置为"killed",但是锁定的资源很长时间没有被释放,那么可以在os一级再杀死相应的进程(线程),首先执行下面的语句获得进程(线程)号:
select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.sid=24 (24是上面的sid)
4.在OS上杀死这个进程(线程):
1)在unix上,用root身份执行命令:
#kill -9 12345(即第3步查询出的spid)
2)在windows(unix也适用)用orakill杀死线程,orakill是oracle提供的一个可执行命令,语法为:
orakill sid thread
其中:
sid:表示要杀死的进程属于的实例名
thread:是要杀掉的线程号,即第3步查询出的spid。
例:c:>orakill orcl 12345

⑥ oracle存储过程要锁表是怎么做的

使用select for update 或者直接lock table。
lock table有六选项,根据你的要求来做。

热点内容
华为p系列手机哪个配置好 发布:2025-03-18 03:20:13 浏览:619
易语言连接access数据库 发布:2025-03-18 03:12:48 浏览:659
苗木源码 发布:2025-03-18 03:12:38 浏览:746
oracle卸载数据库 发布:2025-03-18 03:05:15 浏览:45
编译时生成固件怎么办 发布:2025-03-18 03:04:30 浏览:704
c语言breakcontinue 发布:2025-03-18 02:52:41 浏览:162
服务器云主机改成云电脑 发布:2025-03-18 02:46:11 浏览:423
php环境的搭建 发布:2025-03-18 02:44:47 浏览:491
java实现文件上传到ftp 发布:2025-03-18 02:43:25 浏览:402
编程出游戏 发布:2025-03-18 02:43:15 浏览:179