Oracle数据库远程调用存储过程报错ora 02019的问题
本文内容为如何处理Oracle数据库远程调用存储过程报错ora 02019的问题。
1. 问题描述
今日维护的一个系统中,存储过程调用报错ora-02019。 前置机A有一个存储过程,大致逻辑如下:
第一步,通过dblink调用服务器B的一个存储过程,服务器B的存储过程往表C中插入一条数据
第二步,调用一个视图,该视图通过dblink从表C中查询插入的那条数据
目前是前置机A中的存储过程调用服务器B的存储过程那条语句报错ora-02019
2. 排查思路
-
用tnsping测试了一下网络,是通的。
-
调用前置机A的视图,能够通过dblink从服务器B中获取表数据,验证了dblink是没问题的。
-
在服务器B本地调用存储过程,能够正常执行,表示服务器B中的存储过程没问题。
-
初步猜测是事务问题,但是通过查询VSESSION**表没有相关事务,查询**Vlocked_object也没有发现被锁。
-
试了下万能的重启大法,重启前置机A和服务器B的服务器和数据库,没解决问题。
-
尝试在前置机A和服务器B新建一个存储过程,能够通过前置机A的存储过程调用服务器B的存储过程,有点尴尬。
-
最后尝试了了copy前置机A的存储过程名和内容,删除原有的存储过程,重新创建存储过程,发现能够正常调用了。。。目前还没有排查出明确原因。