Procedure Inserindo registro duplicado...
tenho a seguinte procedure no BD
está funcionando, mas insere duas vezes o mesmo registro..
o que pode ser???
CREATE PROCEDURE INSERT_MANUTENCAO_CORRETIVA ( I_TIPO_MANUT CHAR(1), I_STATUS_OS CHAR(1), I_COD_COLABORADOR CHAR(15), I_ENDERECO_MANUT VARCHAR(150), I_COD_GRUPO_PAT CHAR(15), I_COD_SUB_GRUPO_PAT CHAR(15), I_COD_CONJUNTO CHAR(15), I_DATA_PREVISAO DATE, I_USUARIO VARCHAR(20), I_DATA_CADASTRO DATE, I_SOLICITANTE CHAR(15), I_DESC_SOLICITACAO VARCHAR(200) ) RETURNS ( C_COD_OS CHAR(15) ) AS DECLARE VARIABLE V_COD_OS CHAR(15); begin select coalesce(MAX(C_COD_OS), 0) from OS0100 into :C_COD_OS; select C_RESULTADO from F_Zeros(:C_COD_OS, 1, 15) into :V_COD_OS; insert into OS0100 (C_COD_OS, C_TIPO_OS, C_STATUS_OS, C_COD_COLABORADOR, C_ENDERECO_MANUT, C_COD_GRUPO_PAT, C_COD_SUB_GRUPO_PAT, C_SOLICITANTE, C_DESC_SOLICITACAO, C_COD_CONJUNTO) values (:V_COD_OS, :I_TIPO_MANUT, :I_STATUS_OS, :I_COD_COLABORADOR, :I_ENDERECO_MANUT, :I_COD_GRUPO_PAT, :I_COD_SUB_GRUPO_PAT, :I_SOLICITANTE, :I_DESC_SOLICITACAO, :I_COD_CONJUNTO); insert into CM0100 (C_COD_OS, C_COD_GRUPO_PAT, C_COD_SUB_GRUPO_PAT, C_COD_CONJUNTO, C_DATA_PREVISAO, C_COD_COLABORADOR, C_TIPO_MANUT, C_USUARIO, C_ENDERECO_MANUT, C_SOLICITANTE, C_DESC_SOLICITACAO, C_DATA_CADASTRO) values (:V_COD_OS, :I_COD_GRUPO_PAT, :I_COD_SUB_GRUPO_PAT, :I_COD_CONJUNTO, :I_DATA_PREVISAO, :I_COD_COLABORADOR, :I_TIPO_MANUT, :I_USUARIO, :I_ENDERECO_MANUT, :I_SOLICITANTE, :I_DESC_SOLICITACAO, :I_DATA_CADASTRO); C_COD_OS = :V_COD_OS; suspend; end
está funcionando, mas insere duas vezes o mesmo registro..
o que pode ser???
Cabelo
Curtidas 0
Respostas
Raserafim
29/09/2006
tente o seguinte nesta linha:
select [b]DISTINCT[/b](C_RESULTADO) from F_Zeros(:C_COD_OS, 1, 15) into :V_COD_OS;
GOSTEI 0
Raserafim
29/09/2006
foi mal a confusão, tentei colocar em negrito a alteração.
mas fica assim:
mas fica assim:
select distinct(C_RESULTADO) from F_Zeros(:C_COD_OS, 1, 15) into :V_COD_OS;
GOSTEI 0
Cabelo
29/09/2006
Colega...
Não há necessidade da cláusula distinct, já que o valor retornado é de um procedure com um select count, concatenado de zeros, mas tentei mesmo assim... e continua inserindo o registro duplicado.
O que será que está acontecendo ???
obrigado pela atenção..
Não há necessidade da cláusula distinct, já que o valor retornado é de um procedure com um select count, concatenado de zeros, mas tentei mesmo assim... e continua inserindo o registro duplicado.
O que será que está acontecendo ???
obrigado pela atenção..
GOSTEI 0