ORA-00980 on DUAL and V$SESSION during Oracle Forms 14c compilation despite direct grants
03:16 04 May 2026

I am upgrading a large Oracle Forms application from an older version (12c) to Forms 14c. The database has remained the same, but I am now getting ORA-00980: synonym translation is no longer valid when compiling pll files that reference DUAL or V$SESSION.

The Situation:

  • If I change the code to use SYS.DUAL or SYS.V_$SESSION, the error disappears and compilation succeeds.

  • The error occurs while compiling a script which uses frmcmp_batch.sh. Compiling via Forms 14c Builder is fine.

  • I can query SELECT * FROM DUAL or SELECT * FROM V$SESSION perfectly fine in SQL*Plus/SQL Developer using the same credentials.

What I have checked/tried:

  1. Direct Grants: My user (AESITPR) has been granted direct SELECT access by the DBA. Running SELECT * FROM user_tab_privs confirms:

    • TABLE_NAME: DUAL | PRIVILEGE: SELECT

    • TABLE_NAME: V_$SESSION | PRIVILEGE: SELECT

  2. Private Synonyms: I have checked user_synonyms and I do not have any private synonyms for DUAL or V$SESSION overriding the public ones.

  3. Public Synonyms: Public synonyms exist and appear valid.

My Question:
Since this worked in previous Forms versions and the direct grants are in place, why is the Forms 14c PL/SQL compiler failing to resolve these standard public synonyms? Is there a specific configuration in the 14c middleware or a known change in the 14c compiler's synonym resolution logic that causes this "translation" failure?

I cannot modify hundreds of legacy files to add the SYS. prefix. How can I resolve this at the database or middleware level?

oracle-database plsql oracleforms