Eu tenho a minha procedure que está criada dentro do PROGRAMS UNITS dentro do Forms. Segue minha Procedure abaixo:
PROCEDURE PR_CALCULODIVERGENCE (p_dtfrom in date,
p_dtto in date,
p_erro in out varchar2)
is
begin
for cl in
--Busca, caso os parâmetros p_dtfrom e p_dtto sejam informados ou não
(select a.num_fat_fornec,
a.id_unid_fornec,
a.cod_interno_fat_fornec,
a.id_instalacao_empresa_pedido,
a.dt_emissao_fat_fornec,
sum(nvl(b.qtd_item_fat_fornec,0) + nvl(b.qtd_free_fat_fornec,0))qtdfat,
sum(nvl(c.qtd_solicitada,0) + nvl(c.qtd_free_promocao,0) + nvl(c.qtd_free_desconto,0))qtdped,
(nvl(b.val_pco_fat_fornec,0) - nvl(b.val_desconto_fat_fornec,0))precofat,
(d.val_fornec_eurot*((100-nvl(d.tx_desconto,nvl(d.val_desconto,0) *100))/100))precoped
from ffor_fat_fornec a,
itff_item_fat_fornec b,
itpe_item_pedido c,
itpe_cond_comercial d,
pedi_pedido e,
pedi_cond_comercial f,
item_hist_preço_compra_item g,
item_apresentacao_item i
where a.num_fat_fornec = b.num_fat_fornec
and a.id_unid_fornec = b.id_unid_fornec
and a.cod_interno_fat_fornec = b.cod_interno_fat_fornec
and a.id_instalacao_empresa_pedido = b.id_instalacao_empresa_pedido
and b.num_pedido = c.num_pedido
and b.num_seq_item_pedido = c.num_seq_item_pedido
and b.cod_brasif_item = c.cod_brasif_item
and c.num_pedido = d.num_pedido
and c.num_seq_item_pedido = d.num_seq_item_pedido
and b.num_pedido = e.num_pedido
and e.num_pedido = f.num_pedido
and g.id_unid_emp = a.id_unid_fornec
and g.id_instalacao_empresa_pedido = a.id_instalacao_empresa_pedido
and g.dt_fim_vigencia is null
and g.dt_inicio_vigencia is not null
and g.cod_apresentacao_preço = i.cod_apresentacao_item
and(a.dt_emissao_fat_fornec between trunc(p_dtfrom) and trunc(p_dtto)
or (trunc(p_dtfrom)is null and trunc(p_dtto)is null))
group by a.num_fat_fornec,
a.id_unid_fornec,
a.cod_interno_fat_fornec,
a.id_instalacao_empresa_pedido,
a.dt_emissao_fat_fornec,
(nvl(b.val_pco_fat_fornec,0) - nvl(b.val_desconto_fat_fornec,0)),
(d.val_fornec_eurot*((100-nvl(d.tx_desconto,nvl(d.val_desconto,0) *100))/100))
)
loop
-----*-----teste/display-----*-----
dbms_output.put_line('NUMFATFORNEC' ||' '||cl.num_fat_fornec||
'ID_UNID_FORNEC' ||' '||cl.id_unid_fornec||
'QTDFAT' ||' '||cl.qtdfat||
'QTDPED' ||' '||cl.qtdped);
-----*-----teste/display-----*-----
dbms_output.put_line--('STATUSFAT' ||' '||v_status_fatura||
('CODINTERNO' ||' '||cl.cod_interno_fat_fornec||
'IDINSTALACAO' ||' '||cl.id_instalacao_empresa_pedido||
'PRECOFAT' ||' '||cl.precofat||
'PRECOPED' ||' '||cl.precoped);
end loop;
exception
when others then
p_erro := 'Erro na Pr_Calcula_Divergenceteste: '||sqlerrm;
end;
Sendo que eu não consigo chamá-la dentro da minha PRE_QUERY, como devo fazer, pois dá erro de
FRM-40505: ORACLE error: unable to perform query.
Abrços,
Laninha