sql >> Databasteknik >  >> RDS >> Oracle

Uppdateringssatsen i Oracles lagrade procedur fungerar inte

Det är en dålig praxis att ge parametrar samma namn som tabellkolumner.

Så du bör ändra det:

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;

För för närvarande förstår Oracle det mest troligt som kolumnnamn och uppdaterar bara kolumn till värde från denna kolumn (ingen mening alls)




  1. SQL Server 2005 Pivot på okänt antal kolumner

  2. TSQL - Lägg till kolumn i alla tabeller i en databas [ Markörexempel]

  3. dbms_output size buffertspill

  4. Hur man deklarerar användardefinierat undantag med hjälp av en undantagsvariabel i Oracle-databasen