É possível utilizar funções analíticas no Forms 6?

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
rogenaro
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Sex, 30 Mar 2007 7:26 pm
Localização: Londrina - PR

Digamos que eu tenha a seguinte consulta:

Selecionar tudo

select empno
     , hiredate
     , prox_empno
     , prox_hiredate
into   :emp.empno
     , :emp.hiredate
    ,  :emp.prox_empno
     , :emp.prox_hiredate
from
(
  select empno
       , hiredate
       , lead(empno,1,null) over (order by hiredate) prox_empno
       , lead(hiredate,1,null) over (order by hiredate) prox_hiredate
  from emp
)
where empno = 7900;
ou até mesmo:

Selecionar tudo

select empno
into    :emp.ultimo_empregado
from 
(
   select empno from emp order by hiredate desc
)
where rownum = 1;
Embora eu possa executar estas consultas sem problemas no SQL*Plus (testei nas versões 8.1.7 e 10g XE), quando eu tento compilar um form com uma consulta contendo alguma fução analítica (OVER, LEAD, LAG, etc) ou ainda quando tento utilizar uma cláusula ORDER BY em um SELECT dentro de uma cláusula FROM, sempre me deparo com o erro 103 ao tentar compilar o form (Encountered the symbol ... when expecting one of the following ...).

Alguém conhece alguma solução para este problema?
Até onde pude entender, este problema parece estar relacionado com a versão do compilador PL/SQL do Forms Builder (no meu caso, a 8.0.6.0.0), que provavelmente não suporta os comandos sql que estou tentando usar... Se for este o caso, é possível atualizar a versão do compilador PL/SQL do Forms Builder?

Agradeço qualquer ajuda :P
Avatar do usuário
fabricio.silva
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 34
Registrado em: Seg, 12 Mar 2007 7:07 am
Localização: Catanduva/SP
Fabricio M. Silva
Oracle Certified Associate
------------------------------
Catanduva - SP

Olá,

Acredito que esta seja uma limitação do PL/SQL engine do Forms, eu tentei aqui com o meu (8.0.6.3, patch 12) e também não funcionou.

Para atualizar o engine, aplique o Patch do 6i, a última versão é a 18, no. 4948577 (acho que é o unico homologado para trabalhar com o Oracle 10g, por favor me corrijam se eu estiver errado).

Abs,
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Sim, é exatamente isso...
Para contornar esse problema, eu criei uma procedure/function no banco e coloquei o SQL lá dentro... Daí, apenas chamei essa procedure.

(no meu caso, eu não tinha como aplicar patches de atualização).
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 12 visitantes