Procedure com operador IN
28/03/2014
0
parameters.Add("V_ANO", V_ANO);
parameters.Add("V_MES_ANO", V_MES);
parameters.Add("V_EQPIDE", V_EQPIDE);
Sendo que estão da seguinte forma:
parameters.Add("V_ANO", 2013);
parameters.Add("V_MES_ANO", "<TODOS>");
parameters.Add("V_EQPIDE", "01,02,03");
O insert com o Select não está funcionando, alguém saberia como eu informo esse campo AND EBM_EQP_IDE in (V_EQPIDE);
create or replace
PACKAGE BODY PKG_REL_IND_PRODUTIVIDADE AS
PROCEDURE SP_RELACAO_HORAS_PRODTV_INSERT (
V_ANO IN INT,
V_MESIN VARCHAR2,
V_EQPIDE IN VARCHAR2) IS
BEGIN
DELETE FROM TFTSSYSTEM.CRT_REL_PIFAT
WHERE QEM_INCLUIU = USER;
COMMIT;
INSERT INTO TFTSSYSTEM.CRT_REL_PIFAT
SELECT *
FROM EXTRATO_PROD_GERAL_BI_MOD
WHERE EBM_ANO = V_ANO
AND (V_MES= '<TODOS>' OR EBM_MES_ANO = V_MES)
AND EBM_EQP_IDE in (V_EQPIDE);
COMMIT;
END SP_RELACAO_HORAS_PRODTV_INSERT;
END PKG_REL_IND_PRODUTIVIDADE;
Jaqueline
Posts
28/03/2014
Deivison Melo
Então vamos lá...
create or replace PACKAGE BODY PKG_REL_IND_PRODUTIVIDADE AS PROCEDURE SP_RELACAO_HORAS_PRODTV_INSERT ( V_ANO IN INT, V_MES IN VARCHAR2, V_EQPIDE IN VARCHAR2 ) IS BEGIN DELETE FROM TFTSSYSTEM.CRT_REL_PIFAT WHERE QEM_INCLUIU = USER; -- A VARIÁVEL USER PEGA O USUARIO LOGADO NA SEÇÃO ATUAL --COMMIT; GERALMENTE USA-SE O COMMIT FORA DA PROCEDURE... INSERT INTO TFTSSYSTEM.CRT_REL_PIFAT SELECT * -- AO INVES DO CORINGA * USAR OS CAMPOS QUANDO USA DESSA FORMA TEM Q COLOCAR TODOS NA MESMA ORDEM... FROM EXTRATO_PROD_GERAL_BI_MOD WHERE EBM_ANO = V_ANO AND (V_MES= '<TODOS>' OR EBM_MES_ANO = V_MES) AND EBM_EQP_IDE in (V_EQPIDE); --COMMIT; GERALMENTE USA-SE O COMMIT FORA DA PROCEDURE... END SP_RELACAO_HORAS_PRODTV_INSERT; END PKG_REL_IND_PRODUTIVIDADE;
Por favor, postar o código do erro!!
31/03/2014
Jaqueline
14/04/2014
Marisiana Battistella
Sugiro faça as alterações que o Deivison mencionou e ainda utilize exceptions para verificar erros do DELETE e no INSERT.
Assim se não deletar você deverá impedir que tente inserir. Se deletar, mas não inserir, você deverá desfazer tudo.
Se você não utilizar o tratamento de exceções, correrá o risco de não executar o procedimento por completo gerando erros nos dados armazenados.
Clique aqui para fazer login e interagir na Comunidade :)