Reputation: 339
I am in the process of moving code from 11g to 12c. Several of the packages which I have moved will not execute, returning an error of
"The file-based source [Package Name] is not present in the database. Was it compiled?"
The package and the package body have both been compiled normally, and compiled with debug. Neither state makes any difference.
Executing
select OBJECT_TYPE, STATUS from USER_OBJECTS where OBJECT_NAME = [Package Name];
returns valid status for both the PACKAGE_BODY and the PACKAGE.
Some of the packages which I have moved execute successfully. Some do not. I'm stuck.
Upvotes: 1
Views: 1759
Reputation: 433
lightkeeper's advice was good. In my case I installed Oracle 12c for a Windows client and I think the sql developer that comes with it with is a 3.x version. In my case 3.x allowed 1 proc to be built and then started giving the "file-base source ... " error message. Kind of a pain to install sql developer 4.x but when I did it worked a lot better. If you are building standalone procs without packages you will get an error even in sql developer 4.x that says something about packages. The key there is to compile the proc (gear symbol) and then run it (right arrow). You don't need to have a package to have some procs.
Upvotes: 0
Reputation: 339
This issue was fixed by upgrading SQL Developer 3.0.04 to SQL Developer 4.1.3. Apparently the older version does not play well with Oracle 12c.
Upvotes: 2