-
I recive the following error when I try to compile a large package body (almost 4000 lines) in Oracle8:
PLS-00123: program too large
Can anyone tell me if there a limit as to the amount of code that can be stored in a package? I can't find anything in Oracle's documentation.
Michael Auer
Oracle DBA/Developer
Oracle8i OCP
-
There is a limmit (or at least there was, I'm not sure if it still is in 8i), but you'll never be able to get the actual value for this limit, either in number of lines of code or in bytes of source. It is some kind of soft limit. When oracle parses PL/SQL package, it breakes the code in "nodes" (I belive this was the expression used in the article I've read about this), and there is a limit on the number of this "nodes" that parser can handle. Different PL/SQL constructs create differend number of "nodes", so you can't realy determined this limmit, but if I remember correctly in 7.3 the limit was somewhere around 120 KB of parsed size, but was raised significantly in 8.0.
Your only option is to break this large package into two (or more) smaller packages.
Jurij Modic
ASCII a stupid question, get a stupid ANSI
24 hours in a day .... 24 beer in a case .... coincidence?
-
Michael Auer
Oracle DBA/Developer
Oracle8i OCP
-
Uh, if you are actually hitting that limit, I would suggest breaking it up into *many* smaller packages. I can't imagine how long it must take to simply compile the thing . Also, when Oracle has to load it, it needs a big contiguuous space for that object. If it is broken down, you will have fewer problems and less fragmentation of the SGA. Additionally, it is more likely that pieces of it will remain in the SGA. There are *many* good reasons for keeping the packages sizes small.
- Chris
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|