sql >> Databáze >  >> RDS >> Oracle

Příkaz aktualizace uvnitř uložené procedury Oracle nefunguje

Je špatný zvyk dávat parametrům stejný název jako sloupcům tabulky.

Takže byste to měli změnit:

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;

Protože to Oracle s největší pravděpodobností prozatím chápe jako názvy sloupců a pouze aktualizuje sloupec na hodnotu z tohoto sloupce (vůbec to nemá smysl)




  1. Rady k výkonu SQL Server od Brenta Ozara a Pinala Davea

  2. jak otevřít více modelů/databází v pracovním stole mysql

  3. Převést pole datum a čas na pouhé datum v SQL (Oracle)

  4. Když je pole data prázdné, vložte NULL do PostgreSQL DB přes PHP