Oracle
 sql >> база данни >  >> RDS >> Oracle

Изявлението за актуализиране в съхранената процедура на oracle не работи

Лоша практика е на параметрите да се дават същите имена като колоните в таблицата.

Така че трябва да го промените:

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;

Защото засега най-вероятно Oracle го разбира като имена на колони и просто актуализира колоната до стойност от тази колона (изобщо няма смисъл)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да извикате функция в plsql функция

  2. Грешен брой или типове аргументи в извикване на процедура с използване на zxJDBC

  3. Еквивалент на Oracle ISNULL().

  4. Защо не мога да използвам променлива за свързване в команда за незабавно изпълнение?

  5. ORA-04068:съществуващото състояние на пакетите е отхвърлено ORA-04065:не е изпълнена, променена или премахната съхранена процедура