包中的过程无法执行

时间:2016-08-18 09:44:51

标签: oracle-sqldeveloper oracle12c

我正在将代码从11g移动到12c。我移动的几个包将不会执行,返回错误

  

"数据库中不存在基于文件的源[包名称]。   它被编译了吗?"

包和包体都已正常编译,并使用debug编译。这两个州都没有任何区别。

执行

select OBJECT_TYPE, STATUS from USER_OBJECTS where OBJECT_NAME = [Package Name]; 

返回PACKAGE_BODY和PACKAGE的有效状态。

我移动的一些软件包成功执行。有些人没有。我被卡住了。

2 个答案:

答案 0 :(得分:2)

通过将SQL Developer 3.0.04升级到SQL Developer 4.1.3修复了此问题。显然旧版本与Oracle 12c不兼容。

答案 1 :(得分:0)

lightkeeper的建议很好。就我而言,我为Windows客户端安装了Oracle 12c,我认为它附带的sql开发人员是3.x版本。在我的情况下3.x允许构建1 proc,然后开始给出“文件库源...”错误消息。安装sql developer 4.x有点痛苦但是当我做的时候效果好了很多。如果你在没有软件包的情况下构建独立的procs,你甚至会在sql developer 4.x中出现错误,它会说明有关软件包的内容。关键是编译proc(齿轮符号)然后运行它(右箭头)。你不需要有一个包来进行一些过程。