Forms 12c

Erro ao atualizar forms para a versão 12c

801 internal error [unexpected fragile external reference] 

Ao compilar um forms de uma versão anterior ( 9, 10g ) dentro da versão do Forms Builder 12c , pode ocorrer o erro 801 internal error [referência externa frágil inesperada] conforme exemplificado na figura 2.

Isso ocorre se existir algum cursor que tenha sido definido dentro da especificação do pacote e esse cursor seja utilizado em outros locais dentro do forms , especificamente dentro do corpo do pacote.

Apresentando erro até a versão 12.2.1.4.0

Exemplo

Figura 1 - Conteúdo da Especificação do Pacote

Figura 2 - Conteúdo do Corpo do Pacote com a exibição do erro

Esse é um bug da ferramenta

Até a Oracle fornecer um patch para esse problema, ela recomenda que seja definida a seguinte variável para habilitar a compilação:

FORMS_PLSQL_BHVR_COMMON_SQL=1

Se for definida a variável de PATH no CMD antes de iniciar o Forms Builder, será possível compilar os módulos normalmente

No caso do Forms Builder estar instalado em uma maquina Windows , é possível incluir uma chave no registro.

HKEY_LOCAL_MACHINE\Software\Oracle\KEY_OracleHome1 ( Apontar para o caminho correto do seu ambiente )

Passos

1 - Se o Forms Builder estiver aberto, ele deverá ser fechado

2 - Setar a variável de PATH ou incluir a chave no registro

3 - Abrir o Forms Builder e fazer os testes

Figura 3 - Registro do Windows - Criando Chave

Figura 4 - Registro do Windows - Definindo Valor

Figura 5 - Resultado da aplicação da variável , mostrando que não existem mais erros de compilação