一台服务器上,在oracle中建立了用户A,B。B生成的方法为A数据的倒入及整理清除。因此,俩用户的表结构及存档过程完全一致。现在,偶尔发生前端程序明明连接的是用户A,却异常的调用了B用户的存储过程。求解。

解决方案 »

  1.   

    不会的,建议你让开发人员查查程序配置。被调用的存储过程中,可以加一些日志,把当前用户的存到一张表中。select user from dual
      

  2.   

    这个和oracle数据库本身没什么关系了。
      

  3.   

    应该是你程序的配置文件出了问题,检查配置文件
    1.是不是版本问题?
    2.可以试着打印一些数据库连接日志,程序debug调试等信息。
      

  4.   

    想起前两天一个笑话,某分公司运维告知生产环境某表空间不够,在数据插入时报错ORA-01654,加了数据文件也没用,查了很久没查到原因,还问这是遇到了什么高级错误,除了表空间不足外还有什么其他诡异的可能,或者是BUG?作为一个怀疑一切不相信同事甚至自己的DBA,告诉他们,是你连错库了吧? 不一会就有消息传来,应用连错库了,连到了测试库,表空间加的是生产环境的,为了插入几万条数据,加了20G的空间。
      

  5.   

    好几天没来。我想或许你们理解错了,还是我没说明白?
    我是在开发环境跟踪发现的,比如,数据提交到A用户的表了,然后调用A用户的存储过程进行后续处理。却发现存储过程居然调用了B用户的同名存储过程。我也掉了眼珠子,MEssage了username ,确实为A用户。晕。
      

  6.   

    更为奇怪的是,此错误情况下,程序代码无需任何处理,plsql连接A用户,编译下该存储过程,即一切正常了。