This discussion is archived
7 Replies Latest reply: Jul 29, 2011 4:28 AM by 879010 RSS

PL/SQL cannot understand the stored format of a library unit.

751867 Newbie
Currently Being Moderated
Cause
PL/SQL cannot understand the stored format of a library unit. It has been compiled or shrink-wrapped with a version of PL/SQL either too new or too old for this version to understand it.

Action
Recompile the library unit for this version of PL/SQL

When I compile my forms in Form Developer 11g, I hit this error message.
I recoompile the proc package, the error doesn't go away.

Are there any other cause this problem???
  • 1. Re: PL/SQL cannot understand the stored format of a library unit.
    Zeeshan BaiG Oracle ACE
    Currently Being Moderated
    Not very clear what r u trying to do which package proc giving error ?

    r u working with attached libraries?

    Check the Parameters of the program units if it is different in Procedure and when u calling it.

    also check if ur program unit exists with same name in the database

    Baig,
    [My Oracle Blog|http://baigsorcl.blogspot.com/]
  • 2. Re: PL/SQL cannot understand the stored format of a library unit.
    751867 Newbie
    Currently Being Moderated
    Hi,

    Thank you for you reply.

    My situation is -- No change in the proc. This form developed in 10g and now I re-compile in 11g.

    I have these error message when compile in Form Developer 11g.
    Procedure Body: FINALIZATION_VALATION_PR, 3 Errors
    Error 801 at line 1, line 1
    internal error [phd_get_defn:DI_U_NAM_RHS]
    Error 908 at line 1, column 1
    The stored format of OPUS_CORE.INF_POPLIST is not supported by this release.
    My codes in the form
    FINALIZATION_VALIDARION_PR*(Procedure Body)
    ....
    ELSIF v_error = 312308 THEN
    v_err_cover_code_desc :=inf_poplist.screen_value('AC_UW_PR_COVER_CODES'
    ,v_err_cover_code
    ,:control.language);
         opu001.msg(v_error
    .....

    My OPUS_CORE.INF_POPLIST is pasted from the proc
    FUNCTION screen_value ( p_poplist_code IN poplists.poplist_code%TYPE
    , p_internal_value IN poplist_values.internal_value%TYPE
    , p_language IN screen_values.language%TYPE DEFAULT opu_lang.base_lang )
    RETURN VARCHAR2 IS


    CURSOR c_screen_value IS
    SELECT screen_value
    FROM inf_dnm_poplists
    WHERE poplist_code = p_poplist_code
    AND internal_value = p_internal_value
    AND language = p_language;

    Thanks You,
    Peter
  • 3. Re: PL/SQL cannot understand the stored format of a library unit.
    Andreas Weiden Guru
    Currently Being Moderated
    Id the OPUS_CORE-package in another pll? If so, did you recompile this in 11G (and created new plx)?
  • 4. Re: PL/SQL cannot understand the stored format of a library unit.
    CraigB Guru
    Currently Being Moderated
    So, have you tried recompiling the FINALIZATION_VALATION_PR procedure and any procedures this procedure may reference? Also, what version of Oracle Forms 11 is installed. According to Metalink, you might be bumping into a bug. Check out this document on Metalink:

    *Compiling Forms Fails with PL/SQL ERROR 801, internal error [phd_get_defn:DI_U_NAM RHS] [ID 1058803.1]*

    If this is the issue, the document recommends you upgrade to the latest patch/patch set for Forms 11.

    Hope this helps.
    Craig...

    If a response is helpful or correct, please mark it accordingly
  • 5. Re: PL/SQL cannot understand the stored format of a library unit.
    49905 Pro
    Currently Being Moderated
    Nice to see that somebody testing OPUS in 11g :)
    There is a function call "opu_lang.base_lang" in the spec of INF_POPLIST.screen_value.
    , p_language IN screen_values.language%TYPE DEFAULT opu_lang.base_lang )
    Try to remove DEFAULT opu_lang.base_lang from spec and see if it will help to compile form.
    If it does, most likely you are hitting Bug 7708340 and you will need to apply path.
    If you have access to metalink, see document:
    +[ID 1058803.1] Compiling Forms Fails with PL/SQL ERROR 801, internal error [phd_get_defn:DI_U_NAM RHS]+
  • 6. Re: PL/SQL cannot understand the stored format of a library unit.
    751867 Newbie
    Currently Being Moderated
    Hi, Slava Natapov,

    Thanks you for your reply.
    I try to remove the "default opu_lang.baseLang" or change it to "default 'E'".
    Then I recompile with no error.

    Thank you,
    Peter
  • 7. Re: PL/SQL cannot understand the stored format of a library unit.
    879010 Newbie
    Currently Being Moderated
    Hi
    Thanks for the solution.it works for me.....

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points