目录

Oracle数据库远程调用存储过程报错ora 02019的问题

问题描述

今日维护的一个系统中,存储过程调用报错ora-02019。 前置机A有一个存储过程,大致逻辑如下:

第一步,通过dblink调用服务器B的一个存储过程,服务器B的存储过程往表C中插入一条数据

第二步,调用一个视图,该视图通过dblink从表C中查询插入的那条数据

目前是前置机A中的存储过程调用服务器B的存储过程那条语句报错ora-02019

排查思路

  1. 用tnsping测试了一下网络,是通的

  2. 调用前置机A的视图,能够通过dblink从服务器B中获取表数据,验证了dblink是没问题的

  3. 在服务器B本地调用存储过程,能够正常执行,表示服务器B中的存储过程没问题

  4. 初步猜测是事务问题,但是通过查询V$SESSION表没有相关事务,查询V$locked_object也没有发现被锁

  5. 试了下万能的重启大法,重启前置机A和服务器B的服务器和数据库,没解决问题

  6. 尝试在前置机A和服务器B新建一个存储过程,能够通过前置机A的存储过程调用服务器B的存储过程,有点尴尬

  7. 最后尝试了了copy前置机A的存储过程名和内容,删除原有的存储过程,重新创建存储过程,发现能够正常调用了。。。目前还没有排查出明确原因