BOM DIA NOBRES JEDIS!

SEGUINTE, TENHO MAIS UMA DUVIDA!

EU CRIEI ,(COM A AJUDA DO FORUM É CLARO), UMA PROCEDURE QUE LE ALGUNS 
DADOS E INSERE EM UMA TABELA. AGORA ESTOU TENTANDO CRIAR NA MESMA 
PROCEDURE, UM PROCEDIMENTO QUE PEGUE ESSES DADOS QUE FORAM GRAVADOS 
NA TABELA NOVA E GRAVE EM OUTRA, POREM NÃO OBTIVE SUCESSO NO MEU 
CODIGO...NAO TENHO NEM IDEIA SE O QUE EU FIZ FAZ ALGUM SENTIDO, SÓ 
TENTEI.
SEGUE O CODIGO ABAIXO, ALGUEM PODE ME AJUDAR POR FAVOR?

DEPOIS QUE EU GRAVAR NA ULTIMA TABELA, EU QUERIA CRIAR UMA MANEIRA DE 
TROPAR A PRIMEIRA TABELA QUE FOI GRAVADA, PARA QUE ELE FUNCIONE COMO 
UMA TEMPORARIA POIS ELA NÃO TEM CHAVE PRIMARIA DEVIDO AO FATO DE QUE 
MUITOS ITENS SE REPETE.

VALEU GALERA, SEGUE CODIGO:

CREATE OR REPLACE procedure sp_insere_tabela2(vano CHAR,vcod_modelo 
CHAR)
Is
--Index By Binary_Integer;
BEGIN

For vlinha In (

SELECT M.ANO,
M.cod_modelo,
M.item_agrupador,
M.DESCRICAO_AGRUPADOR,
M.QUANTIDADE_COMPOSICAO,
M.QUANTIDADE_COMPOSICAO*Avg (T.PRECO_UNITARIO_NACIONAL + (F_DOLAR
(vano)*T.PRECO_UNITARIO_IMPORTADO )) AS PRECO_MEDIO,
AVG(T.PRECO_UNITARIO_NACIONAL + (F_DOLAR(vano)
*T.PRECO_UNITARIO_IMPORTADO )) AS TOTAL

FROM modelo_equipamento M join tabela_preco T ON (M.cod_equipamento = 
T.cod_equipamento)

GROUP BY M.cod_modelo,M.item_agrupador, 
M.QUANTIDADE_COMPOSICAO,M.ANO,M.DESCRICAO_AGRUPADOR)

--AQUI EU DOU UM INSERT NA PRIMEIRA TABELA, A QUE SERIA UMA TEMPORARIA
LOOP 
INSERT INTO PRECO_PARCIAL
(ANO,COD_MODELO,ITEM_AGRUPADOR,DESCRICAO_AGRUPADOR,QUANTIDADE_COMPOSIC
AO,
PRECO_MEDIO,TOTAL)

VALUES 
(vlinha.ANO,vlinha.COD_MODELO,vlinha.ITEM_AGRUPADOR,vlinha.DESCRICAO_A
GRUPADOR,
vlinha.QUANTIDADE_COMPOSICAO,vlinha.PRECO_MEDIO,vlinha.TOTAL); 

End Loop;

COMMIT;

--AQUI EU TENTEI INSERIR OS DADOS DA PRIMEIRA TABELA NESTA ULTIMA 
CHAMADA DE PRECIFICACAO_DETALHADA 

For vlinha2 In(select r1.ano as ano, 
r1.cod_modelo as cod_modelo,
r2.QUANTIDADE_INVENTARIO as quantidade_inventario, r2.unidade as 
unidade, r1.preco_modelo as preco_modelo, 
r1.preco_modelo*r2.QUANTIDADE_INVENTARIO AS VALOR_CCA, 
r3.custo_indireto AS CUSTO_INDIRETO,
r1.preco_modelo*r2.QUANTIDADE_INVENTARIO*(1+r3.custo_indireto) as 
VALOR_CCA_COM_CUSTO_INDIRETO,
r3.fator_ociosidade as FATOR_OCIOSIDADE, 
r1.preco_modelo*r2.QUANTIDADE_INVENTARIO*(1+r3.custo_indireto)*(1-
r3.fator_ociosidade) AS VALOR_CCA_COM_OCIOSIDADE 
 
from (select ano,cod_modelo, sum(total) as preco_modelo from 
preco_parcial where ano = vano and cod_modelo = vcod_modelo group by 
ano, cod_modelo) 
r1 JOIN (select ano, cod_modelo, sum(quantidade_inventario) as 
QUANTIDADE_INVENTARIO,unidade from quantitativo_fisico where ano = 
vano and cod_modelo = vcod_modelo group by ano, cod_modelo,unidade) 
r2 
ON(r1.ano = r2.ano and r1.cod_modelo = r2.cod_modelo) JOIN (select 
ano,cod_modelo,custo_indireto,fator_ociosidade from modelo_fator 
where ano = vano and cod_modelo = cod_modelo group by ano, 
cod_modelo,custo_indireto,fator_ociosidade) r3 
ON(r2.ano = r3.ano and r2.cod_modelo = r3.cod_modelo)) LOOP

INSERT INTO PRECIFICACAO_DETALHADA (ANO,COD_MODELO,
QUANTIDADE_INVENTARIO,UNIDADE,PRECO_MODELO,
VALOR_CCA,CUSTO_INDIRETO,
VALOR_CCA_COM_CUSTO_INDIRETO,FATOR_OCIOSIDADE, 
VALOR_CCA_COM_OCIOSIDADE)

VALUES 
(vlinha2.ANO,vlinha2.COD_MODELO,vlinha2.QUANTIDADE_INVENTARIO,vlinha2.
UNIDADE,vlinha2.PRECO_MODELO,
vlinha2.VALOR_CCA,vlinha2.CUSTO_INDIRETO,
vlinha2.VALOR_CCA_COM_CUSTO_INDIRETO,vlinha2.FATOR_OCIOSIDADE,vlinha2.
VALOR_CCA_COM_OCIOSIDADE);

END LOOP;

COMMIT;

DELETE PRECO_PARCIAL; --AQUI TENTEI DROPAR A A TABELA DEPOIS DE 
UTILIZA-LA PARA EVITAR DUPLICIDADE NO CALCULO


Exception
When no_data_found
Then
raise_application_error(-20000, 'Nenhum Registro Encontrado');
end sp_insere_tabela2;
/




QUE A FORÇA ESTEJA COM VCS!

Responder a