程序包中的程序无法执行
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。
我正在将代码从 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。