程序包中的程序无法执行

Procedure in package cannot execute

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

的错误

"The file-based source [Package Name] is not present in the database. Was it compiled?"

包和包体均已正常编译,并带调试编译。两种状态都没有区别。

正在执行

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

returns PACKAGE_BODY 和 PACKAGE 的有效状态。

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

此问题已通过将 SQL Developer 3.0.04 升级到 SQL Developer 4.1.3 得到解决。显然旧版本不能很好地与 Oracle 12c 兼容。

lightkeeper 的建议很好。在我的例子中,我为 Windows 客户端安装了 Oracle 12c,我认为它附带的 sql 开发人员是 3.x 版本。在我的例子中,3.x 允许构建 1 个过程,然后开始给出 "file-base source ... " 错误消息。安装 sql 开发人员 4.x 有点痛苦,但当我这样做时,它工作得更好。如果您正在构建没有包的独立过程,即使在 sql 开发人员 4.x 中也会出现有关包的错误。关键是编译 proc(齿轮符号),然后 运行 它(右箭头)。你不需要有一个包来拥有一些 procs。