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