TECNOLOGIA – Gerador de Relatórios – Erro na Geração do SQL da Seção Detalhes: Detalhe_E140NFV. Função não encontrada: "TO_NUMBER"
Incidente
No módulo Recursos, ao desenvolver um relatório utilizando algumas funções do Oracle, é apresentada a mensagem: Erro na Geração do SQL da Seção Detalhes: Detalhe_E140NFV. Função não encontrada: "TO_NUMBER".
Causa
Esta mensagem é apresentada, pois o comando TO_NUMBER não pode ser utilizado no SQL Senior 2.
Solução
Para que a mensagem não seja apresentada ao utilizar o TO_NUMBER dentro do gerador de relatório, realize os passos a seguir:
1. Retire o TO_NUMBER do evento pré-seleção;
2. Na seção detalhe, em eventos criei um cursor com a função TO_NUMBER, ao deixar a opção de Senior SQL 2 marcado, a regra não compila com o erro na função:
3. Desmarque Senior SQL 2 e compile a regra.
Importante:
Temos 2 trechos na documentação que deixam um pouco mais claro o comportamento:
Ativação da linguagem no gerador de relatórios
No gerador de relatórios a ativação é feita através do menu principal do gerador. No item diversos existe a opção Usar Senior SQL 2.
Esta ativação é referente a todas as regras do modelo selecionado, sendo relativa somente aos comandos SQL executados de dentro de uma regra do modelo selecionado, não interferindo no SQL gerado e executado diretamente pelo gerador de relatórios.
Comandos SQL em cursores
Os comandos SQL Senior 2 executados dentro de cursores das regras não poderão mais usar comandos nativos do banco de dados, como TO_DATE ou CONVERT, por exemplo.
Estes comandos deverão ser substituídos por comandos da linguagem Senior SQL 2.
Acesse aqui o Portal de Documentação Senior, pesquise "Linguagem Senior SQL 2 dentro das regras" e localize a documentação sobre esta rotina de Ferramentas de apoio.