Skip to Main Content

Oracle Forms

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

how to fix the ORA-06508: it does not make sense in dog's problem

NapoleaoApr 5 2019 — edited Apr 5 2019

Hello,

we're migrating from forms 6i to forms 12c (using Oracle Forms 12.2.1.3.0 with Oracle Forms Standalone Launcher - FSAL - to deploy) and we found a lot of problems. Many of them were resolved by reading a lot of topics on differents forums, as well the documentation of the tool itself.

But, for some of these problems we haven't found a solution and we need to interact with you people. Until now, for one of these problems we haven't found neither an logic explanation (probably because we haven't the knowledge related to what's behind the scenes of the Oracle Forms). The error currently being displayed to us is the "ORA-06508: PL/SQL: could not find program unit being called".

We believe that would be very complex to explain and describe this problem based on our system, because the logics involved are quite large and with several relationships between them. It would be difficult to explain every reason of why we do things the way we do. Therefore, we took a considerable amount of time to understand a little more about each related step, to be able to clear out such logic and isolate the problem as much as possible, making it easier for us to describe all this situation that's happening.

In our system the error occurs at a certain point in logic, using about 5 libraries and 2 forms that are related. We were able to simplify and minimize to a single library and 2 forms, but even then it was not possible to find out exactly why the problem happens. Anyway, now it'll easier to explain and demonstrate the situation.

We would like to better understand what happens, because we sincerely believe that the relationships between the forms and the library are all correct and are all valid. It's important to mention that this problem is only noticed in version 12c, because we tested this same situation in version 6i of Oracle Forms and the problem does'nt occur - and our system works fine.

Finally, the simplification we created needed to be transformed to have a context, even if simple, to allow a minimally decent understanding of the relationship between the forms and the library. Therefore, we create the dog's problem, which consists of basic and daily activities of a domestic dog. The form initializes with the dog at home and there's the option to change the place in which it is, with the commitment to fulfill certain requirements for the change of place. In any place, a minimum requirement for the dog to walk, is to have eaten some minimal meal (to have energy). When the dog moves toward the street, it is necessary to change the level of attention, because the street is more dangerous.

We reinforce again, that these are just simple logics for understanding the relationships that we've made.

We describe below in details the forms, the library and their respective codes, to simulate the problem.

HOME.fmb

pastedImage_2.png

pastedImage_16.png

HOME.BK_MAIN.BUTTON_CHANGE_PLACE.WHEN-BUTTON-PRESSED

BEGIN

--

WALK_REQUIREMENTS.EAT;

--

CALL_FORM('STREET');

--

EXCEPTION

WHEN OTHERS THEN

MESSAGE('HOME.BK\_MAIN.BUTTON\_CHANGE\_PLACE.WHEN-BUTTON-PRESSED.SQLERRM='||SQLERRM);PAUSE;

END;

HOME.BK_MAIN.BUTTON_LEAVE_FOREVER.WHEN-BUTTON-PRESSED

BEGIN

--

EXIT_FORM;

--

EXCEPTION

WHEN OTHERS THEN

MESSAGE('HOME.BK\_MAIN.BUTTON\_LEAVE\_FOREVER.WHEN-BUTTON-PRESSED.SQLERRM='||SQLERRM);PAUSE;

END;

STREET.fmb

pastedImage_4.png

pastedImage_17.png

STREET.BK_MAIN.BUTTON_WALK.WHEN-BUTTON-PRESSED

BEGIN

--

--MESSAGE(1);PAUSE;

--

WALK_REQUIREMENTS.DEFINE_CAUTION;

--

--MESSAGE(2);PAUSE;

--

EXCEPTION

WHEN OTHERS THEN

MESSAGE('STREET.BK\_MAIN.BUTTON\_WALK.WHEN-BUTTON-PRESSED.SQLERRM='||SQLERRM);PAUSE;

END;

STREET.BK_MAIN.BUTTON_LEAVE.WHEN-BUTTON-PRESSED

BEGIN

--

EXIT_FORM;

--

EXCEPTION

WHEN OTHERS THEN

MESSAGE('STREET.BK\_MAIN.BUTTON\_LEAVE.WHEN-BUTTON-PRESSED.SQLERRM='||SQLERRM);PAUSE;

END;

STREET.WALK_ATTRIBUTES (Package Spec)

PACKAGE WALK_ATTRIBUTES IS

--

PROCEDURE SET_VELOCITY;

--

END;

STREET.WALK_ATTRIBUTES (Package Body)

PACKAGE BODY WALK_ATTRIBUTES IS

--

PROCEDURE SET_VELOCITY IS

BEGIN

--

NULL;

--

EXCEPTION

WHEN OTHERS THEN

  MESSAGE('STREET.WALK\_ATTRIBUTES.SET\_VELOCITY.SQLERRM='||SQLERRM);PAUSE;

END;

--

END;

WALK.pll

pastedImage_5.png

****WALK.WALK_ATTRIBUTES (Package Spec)

PACKAGE WALK_ATTRIBUTES IS

--

PROCEDURE SET_VELOCITY;

--

END;

****WALK.WALK_ATTRIBUTES (Package Body)

PACKAGE BODY WALK_ATTRIBUTES IS

--

PROCEDURE SET_VELOCITY IS

BEGIN

--

NULL;

--

EXCEPTION

WHEN OTHERS THEN

  MESSAGE('WALK.WALK\_ATTRIBUTES.SET\_VELOCITY.SQLERRM='||SQLERRM);PAUSE;

END;

--

END;

WALK.WALK_REQUIREMENTS (Package Spec)

PACKAGE WALK_REQUIREMENTS IS

--

PROCEDURE EAT;

--

PROCEDURE DEFINE_CAUTION;

--

END;

WALK.WALK_REQUIREMENTS (Package Body)

PACKAGE BODY WALK_REQUIREMENTS IS

--

PROCEDURE EAT IS

BEGIN

--

NULL;

--

EXCEPTION

WHEN OTHERS THEN

  MESSAGE('WALK.WALK\_REQUIREMENTS.EAT.SQLERRM='||SQLERRM);PAUSE;

END;

--

PROCEDURE DEFINE_CAUTION IS

BEGIN

--

--MESSAGE(3);PAUSE;

--

WALK\_ATTRIBUTES.SET\_VELOCITY;

--

--MESSAGE(4);PAUSE;

--

EXCEPTION

WHEN OTHERS THEN

  MESSAGE('WALK.WALK\_REQUIREMENTS.DEFINE\_CAUTION.SQLERRM='||SQLERRM);PAUSE;

END;

--

END;

ORA-06508: PL/SQL: could not find program unit being called

pastedImage_34.png

To simulate the error, the "HOME" form must be executed and afterwards, the "CHANGE PLACE" button must be clicked. When the "STREET" form is opened, the "WALK" button must be clicked.

Is it an internal Oracle Forms 12c problem?

What can we do to proceed with our migration process without the occurrence of this error?

In case we have not expressed ourselves very well and someone has not understood some details, we kindly ask you to let us know, so that we can answer the remaining questions - perhaps using some example related to what we have in our system.

Maybe a few of you already lived this problem.

Anyone knows the solution for what we'd described?

Thank you in advance.

Comments
Post Details
Added on Apr 5 2019
6 comments
3,239 views