Uniface User Forum

 View Only
  • 1.  How to resolve PLS-00201: identifier must be declared error ?

    Posted 04-20-2021 06:34

    We are facing one technical issue. PFB the details,


    Issue: In one of the legacy existing entity, we have introduced 4 new fields and the same change has been performed at Oracle end by altering the table in database directly.

    During runtime we have encountered the below mentioned error intermittently. We have analyzed the model and committed the change and all the forms associated with this entity got re-compiled. According to our knowledge our code doesn’t use store procedure to perform I/O operations.


    PFB the error snippet:

    I/O function: F, mode: 0, on file/table: IMBASEMAT index: 1 =

    Where ((BASEMAT_ID = 'SAMS20FE5GNAV'))

    BEGIN "IMBASEMAT$U"."UNIFACE_IO"( :UNIFACE_IO_REQUEST, :XBASEMAT_ID, :XSERIAL_FLG, :XPHNOTYP, :XPHNOVAL, :XPHNOGRP, :XREFURBBASE

    MAT_ID, :XESNAUTOGEN_ID, :XROWID, :WBASEMAT_ID, :ONE_ROW_AFFECTED ); END;

    ORA-06550: line 1, column 7:

    PLS-00201: identifier 'IMBASEMAT$U.UNIFACE_IO' must be declared

    ORA-06550: line 1, column 7:

    PL/SQL: Statement ignored

    ORACLE Driver Error [-35]: Fetch driver function failed.


    Kindly help us in sorting the above mentioned issue. Like what need to be done to resolve the above mentioned error ?



  • 2.  RE: How to resolve PLS-00201: identifier must be declared error ?

    Posted 04-20-2021 08:22

    Hi Boobalan,

    You are missing:
    - to compile ALL your components referring to modified entity.
    - to update your DBMS stored procedures and/or triggers related to modified entity.

    I think you should:
    1) Analyze your updated application model (LINK DOC U10).
    2) Recompile ALL your component including modified entity, because up2date entity structure is saved into them at compile time (LINK DOC U10).

    From error reported I suppose your deployment is configured to use standard stored procedures and/or database triggers generated by Uniface, depending from Oracle driver config; so you need also to:
    3) Regenerate your database scripts for Oracle depending from Oracle driver config (LINK DOC U10).
    4) Apply your renewed stored procedures and/or database triggers into your Oracle environment.

    If you are still using U9 you should look for equivalent functionalities in that version.

    Hope it helps.

    Regards,
    Gianni




  • 3.  RE: How to resolve PLS-00201: identifier must be declared error ?

    Posted 04-20-2021 11:08

    Hi Gianni,

    Thank you for the response.

    Actually, we are using Uniface version 7.

    Regarding point 3. (i.e.) Regenerate your database scripts for Oracle depending from Oracle driver config.

    Does the process/steps mentioned in the document is same for U7 ?

                 

    Also, you mentioned "your deployment is configured to use standard stored procedures and/or database triggers generated by Uniface, depending from Oracle driver config".

    So, from the above statement i believe definitely there should be standard procedures and/or database triggers against that table in oracle Database right ?

    But, unfortunately we cannot see any stored procedures/ triggers with our logins to the schema where the table exists in database. Is it something like only Database Administrator team can view the procedure/triggers ?



  • 4.  RE: How to resolve PLS-00201: identifier must be declared error ?

    Posted 04-21-2021 06:09

    Hi Boobalan,

    Uniface 7? It's time to consider a migration to newest version either for DBMS and application...but anyhow: OK!

    #3 Yes, the process is the same.

    Yes, for each entity the Oracle driver could generate a set of DBMS scripts. You could have a look at those looking for SQL scripts distributed by Uniface for its own repository.

    Yes, it could be your access to DBMS need to be done with higher privileges to see everything there. It depend from Oracle security: contact your db admin.

    Regards,
    Gianni