Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Good morning Guys,
I need some help to fetch data from Oracle database and put that information on the Qlikview. But to get this information I need to use the information it has on the script below. Could you help me how can I put it in QlikView? Grateful
******************************************************************************************
declare
cursor ordens_producao
is
selecta.ordem_producao op, a.ultimo_estagio ue, c.codigo_estagio estagio,
sum
(c.qtde_pecas_prod + c.qtde_conserto + c.qtde_pecas_2a + c.qtde_perdas) qtde_corte_op
from
pcpc_020 a, basi_030 b, pcpc_040 c
where
a.referencia_peca = b.referencia
and
a.ordem_producao = c.ordem_producao
and
a.referencia_peca = c.proconf_grupo
and
c.proconf_nivel99 = b.nivel_estrutura
and
c.codigo_estagio = b.estagio_altera_programado
and b.nivel_estrutura =
'1'
and a.cod_cancelamento =0
and a.ordem_producao = 251740and c.qtde_pecas_prod + c.qtde_conserto + c.qtde_pecas_2a + c.qtde_perdas <> 0
group bya.ordem_producao, a.ultimo_estagio, c.codigo_estagio
union
selecta.ordem_producao op, a.ultimo_estagio ue, c.codigo_estagio estagio,
sum
(c.qtde_pecas_prod + c.qtde_conserto + c.qtde_pecas_2a + c.qtde_perdas) qtde_corte_op
from
pcpc_020 a, basi_030 b, pcpc_040 c
where
a.referencia_peca = b.referencia
and
a.ordem_producao = c.ordem_producao
and
a.referencia_peca = c.proconf_grupo
and
c.proconf_nivel99 = b.nivel_estrutura
and c.codigo_estagio = 21
andc.codigo_estagio < b.estagio_altera_programado
and b.nivel_estrutura =
'1'
and a.cod_cancelamento =0
and a.ordem_producao = 251740and c.qtde_pecas_prod + c.qtde_conserto + c.qtde_pecas_2a + c.qtde_perdas <>
0
and not exists (select1
frompcpc_040 d
where
d.periodo_producao = c.periodo_producao
and
d.ordem_confeccao = c.ordem_confeccao
and
d.ordem_producao = c.ordem_producao
and
d.codigo_estagio = b.estagio_altera_programado
and d.qtde_pecas_prod + d.qtde_conserto + d.qtde_pecas_2a + d.qtde_perdas <> 0
)
group bya.ordem_producao, a.ultimo_estagio, c.codigo_estagio;
saldo_op
number
;
qtde_ultimo_estagio_op
number
;
qtde_tecido_pendente
number
;
v_registro
varchar(1500
);
qtde_total_pcs
number
;
custo_medio
number
;
deposito_tecido
number
;
mes
number
;
ano
number
;
qtde_em_dep
number
;
begin
qtde_total_pcs:=
0;
loop
select sum(d.qtde_pecas_prod + d.qtde_conserto + d.qtde_pecas_2a + d.qtde_perdas)
into
qtde_ultimo_estagio_op
from
pcpc_040 d
where
d.ordem_producao = ops.op
and
d.codigo_estagio = ops.ue;
select count(*) into
qtde_em_dep
from
pcpc_330 f
where
f.ordem_producao = ops.op
and f.estoque_tag =
1
and f.deposito in (400, 420, 430, 488, 489, 500, 501, 502, 505)
and f.data_inclusao >= '01-jan-2007'
;
saldo_op:= ops.qtde_corte_op - qtde_ultimo_estagio_op + qtde_em_dep;
if saldo_op >0
then
declare
cursor tecidos isselect
e.pano_fin_nivel99 n, e.pano_fin_grupo tec, e.pano_fin_subgrupo proc, e.pano_fin_item cor,
sum
(e.qtde_kg_final) qtde_alocada
from
pcpt_025 e
where
e.ordem_producao = ops.op
and e.codigo_rolo >
0
group bye.pano_fin_nivel99, e.pano_fin_grupo, e.pano_fin_subgrupo, e.pano_fin_item
order by
e.pano_fin_nivel99, e.pano_fin_grupo, e.pano_fin_subgrupo, e.pano_fin_item;
begin
for tec in tecidosloop
mes:= to_char(
sysdate,'MM');
ano:= to_char(
sysdate,'YYYY'
);
custo_medio:=
0
;
qtde_tecido_pendente :=
0
;
qtde_tecido_pendente := (tec.qtde_alocada / ops.qtde_corte_op) * saldo_op;
;
end if
;
if tec.tec is null then tec.tec:= '00000'
;
end if
;
if tec.proc is null then tec.proc:= '000'
;
end if
;
if tec.cor is null then tec.cor:= '000000'
;
end if
;
v_registro:= to_char(ops.op) ||
' - '||
to_char(tec.n) ||
'.'
||
to_char(tec.tec) ||
'.'
||
to_char(tec.proc) ||
'.'
||
to_char(tec.cor) ||
' - '
||
to_char(ops.qtde_corte_op,
'999,999,999') ||' - '
||
to_char(qtde_ultimo_estagio_op,
'999,999,999') ||' - '
||
to_char(tec.qtde_alocada,
'999,999,990.000') ||' - '
||
to_char(qtde_tecido_pendente,
'999,999,990.000')||' - '
||
to_char(qtde_em_dep,
'999,999,990.000') ||' - '
||
to_char(custo_medio,
'990.00000') ||' - '
||
to_char(mes,
'00') ||' - '
||
to_char(ano,
'0000'
);
dbms_output.put_line(v_registro);
commit
;
end loop
;
end
;
end if
;
if saldo_op > 0 then
qtde_total_pcs:= qtde_total_pcs + saldo_op;
end if
;
dbms_output.put_line(
''
);
v_registro:= to_char(
'Saldo da op: '||to_char(ops.op,'999999999')||' '
||
to_char(saldo_op,
'999,999,999,990'
));
dbms_output.put_line(v_registro);
dbms_output.put_line(
''
);
end loop
;
dbms_output.put_line(
''
);
v_registro:= to_char(
'Total geral saldo ops: ' ||''
||
to_char(qtde_total_pcs,
'999,999,999,990'
));
dbms_output.put_line(v_registro);
end
;
There is "end loop" and "commit" . This is a stored procedure, not a select statement. Make a stored procedure in Oracle, call it from QlikvIew, than do a simple select from QlikView .
I think only MS SQL server stored procedures can return rows as if they were a select .
-Alex
Hello my friend,
I need a result of this script in qlikview.
I am afraid you will have to pay a visit to the DBA first : create the stored procedure for you, and write it's result into a table.
See here how to call Oracle stored procedures: http://community.qlik.com/forums/p/35080/137075.aspx
Than do a select from the table into QlikView
-Alex