sql >> Base de Datos >  >> RDS >> Oracle

La declaración de actualización dentro del procedimiento almacenado de Oracle no funciona

Es una mala práctica dar a los parámetros el mismo nombre que las columnas de la tabla.

Así que deberías cambiarlo:

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 ahora, lo más probable es que Oracle lo entienda como nombres de columna y simplemente actualice la columna al valor de esta columna (no tiene ningún sentido)