解决方案 »

  1.   

    Select…For Update语句的语法与select语句相同,只是在select语句的后面加FOR UPDATE [NOWAIT]子句。该语句用来锁定特定的行(如果有where子句,就是满足where条件的那些行)。当这些行被锁定后,其他会话可以选择这些行,但不能更改或删除这些行,直到该语句的事务被commit语句或rollback语句结束为止。
    你执行SELECT t.* FROM t_user t FOR UPDATE ; 的时候估计有其他人正在修改相关记录且没有提交
      

  2.   

    估计是你的数据记录由于某些原因,发生死锁
    因此在你用for update加锁时失败报错
    dba用户执行下面语句,检查是否存在死锁记录
    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
      

  3.   

    没查到数据,而且我在
    DROP TABLE T_USER CASCADE CONSTRAINTS;
    时也会报错
      

  4.   

    T_USER的类型是不是不是table,而是视图或是什么其他的类型
      

  5.   

    -- DROP table
    DROP TABLE T_USER CASCADE CONSTRAINTS;-- Create table
    create table T_USER
    (
      userid       VARCHAR2(20) not null,
      password     VARCHAR2(20) not null,
      usertype     VARCHAR2(1),
      status       VARCHAR2(1),
      registerdate DATE
    )
    tablespace USERS
      pctfree 10
      initrans 1
      maxtrans 255;
    -- Add comments to the columns 
    comment on column T_USER.userid
      is '用户id';
    comment on column T_USER.password
      is '用户密码';
    comment on column T_USER.usertype
      is '用户类型';
    comment on column T_USER.status
      is '账号状态';
    comment on column T_USER.registerdate
      is '注册时间';
      

  6.   

    现在发现  用select  ... for update;可以插入数据,但是老是弹出那个框子报错
      

  7.   

    一个是t_use  一个是t_user  是不是搞错了?
      

  8.   

    9楼,慧眼啊, t_use 和 t_user 的区别
      

  9.   

    我也发现了,但是他后面图片中语句里都是t_user,应该不是这问题吧
      

  10.   

    delete  from daul;
    后添加一句:
    commit;
      

  11.   

    直接执行insert into就行了啊,为什么要先....for update 锁表呢。或者,打开一个空白sql window,输入表名,右键表名,选择Edit data,再粘数据好了