Oracle
 sql >> Database >  >> RDS >> Oracle

L'istruzione di aggiornamento all'interno della procedura memorizzata di Oracle non funziona

È una cattiva pratica assegnare ai parametri lo stesso nome delle colonne della tabella.

Quindi dovresti 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;

Perché per ora, molto probabilmente, Oracle lo interpreta come nomi di colonna e aggiorna semplicemente la colonna in base al valore da questa colonna (non ha alcun senso)