Oracle
 sql >> Base de données >  >> RDS >> Oracle

L'instruction de mise à jour dans la procédure stockée oracle ne fonctionne pas

Il est déconseillé de donner aux paramètres le même nom que les colonnes de table.

Vous devez donc le modifier :

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;

Parce que pour l'instant, très probablement, Oracle le comprend comme des noms de colonne et met simplement à jour la colonne à la valeur de cette colonne (aucun sens)