Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

A instrução de atualização dentro do procedimento armazenado do Oracle não está funcionando


É uma má prática dar aos parâmetros o mesmo nome das colunas da tabela.

Então você deve alterá-lo:
CREATE OR REPLACE PROCEDURE UpdateSourceLog
( p_SourceLogId IN NUMBER, p_TotalRowCount IN INT,p_status IN VARCHAR)

AS
BEGIN
        UPDATE  SourceLog
        SET     Status = p_status,
                TotalRowCount = p_TotalRowCount,
                EndTime = SYSDATE
        WHERE   SourceLogId = p_SourceLogId;
        COMMIT;
END;

Porque por enquanto, muito provavelmente, a Oracle entende isso como nomes de coluna e apenas atualiza a coluna para o valor desta coluna (sem sentido algum)