oracle 的 for update的使用

各位大神,我想问一下,数据库是oracle,例如有表student,我这个语句这样写select*fromstudentwhereid=3forupdate;如果这个查询... 各位大神,我想问一下,数据库是oracle,例如有表student,我这个语句这样写select * from student where id = 3 for update;如果这个查询的记录为空,那么for update是否还会起到加锁的作用。 还有在PL/SQL中,如果我这样写 select NVL(id,-1) into v_id from student where id = 3 for update;同样,表中没有id为3的记录,所以查询的记录同样为空,但是此时 v_id 的值是什么? 我想要得到-1,但是貌似不行。 展开
 我来答
死憋狂战的神牛
推荐于2017-10-01 · TA获得超过137个赞
知道答主
回答量:76
采纳率:0%
帮助的人:51.7万
展开全部
  1. 会加锁

  2. 这个一般这样写的

    begin

    select NVL(id,-1) into v_id from student where id = 3 for update;
    exception when no_data_found then

       v_id =-1;

        end;

就是用异常去写,以前刚学的时候也跟楼主一样写法,不行的哈。没得到数据跟得到的是NULL不是一回事。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式