Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Die Update-Anweisung in der gespeicherten Oracle-Prozedur funktioniert nicht

Es ist eine schlechte Praxis, Parametern denselben Namen wie Tabellenspalten zu geben.

Sie sollten es also ändern:

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;

Denn im Moment versteht Oracle es höchstwahrscheinlich als Spaltennamen und aktualisiert einfach die Spalte auf den Wert dieser Spalte (überhaupt keinen Sinn)