我感觉无法存储过程调用时自己锁定。
但可以在存储过程中,做个全局编量 (如:blnExec  1:可执行;0:不可执行;),.....  if p.blnExec = 0 then
     return;
  end if;
  p(0);
....--终了时
  p(0);

解决方案 »

  1.   

    那么可以用锁表的方式实现吗?
    关键是如果存储过程调用过程中出现异常,比如数据库DOWN掉,恢复后存储过程仍然可以正常调用。
      

  2.   

    那么可以用锁表的方式实现吗?
      对于不同的session,是可以的,但同一个session却可以连续锁表。例如,在sqlplus中,
    你可以连续锁一个表,不发生错误;但另打开一个sqlplus,锁同一个表,会返回ora-00054
    的错误