use*_*647 2 oracle stored-procedures
我在 oracle 存储过程中有一个简单的更新语句。它成功执行但不更新表。
CREATE OR REPLACE PROCEDURE UpdateSourceLog
( SourceLogId IN NUMBER, TotalRowCount IN INT,Status IN VARCHAR)
AS
BEGIN
UPDATE SourceLog
SET Status = Status,
TotalRowCount = TotalRowCount,
EndTime = SYSDATE
WHERE SourceLogId = SourceLogId;
COMMIT;
END;
Run Code Online (Sandbox Code Playgroud)
我尝试更改与列名不同的参数名称。然后它也不起作用。我试过匿名块。我无法找出问题所在。请在这方面帮助我。谢谢!
给参数赋予与表列相同的名称是一种不好的做法。
所以你应该改变它:
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;
Run Code Online (Sandbox Code Playgroud)
因为就目前而言,Oracle 很可能将其理解为列名,并且只是将列更新为该列中的值(完全没有意义)
| 归档时间: |
|
| 查看次数: |
4119 次 |
| 最近记录: |