【问题标题】:PL-SQL Procedure Executes Successfully but doesn't update the table [closed]PL-SQL 过程成功执行但不更新表 [关闭]
【发布时间】:2012-12-16 14:33:00
【问题描述】:

我写了一个 pl-sql 过程来更新一个表。

CREATE OR REPLACE 
PROCEDURE EMP_UPDATE (emp IN NUMBER, div_code IN VARCHAR2)
AS
BEGIN

    UPDATE EMP_CATEGORY 
SET EMP_CATEGORY.DIV_CODE = div_code    
WHERE EMP_CATEGORY.EMP_NO = emp;
    COMMIT;

END EMP_UPDATE;

单独的更新查询可以正常工作并更新表。但是在过程中使用它时会显示

Procedure executed successfully
Query time: 0.018ms
Affected rows: 1

但实际的表记录并没有改变。 我无法弄清楚这个程序有什么问题。谁能指出我在哪里做错了?

【问题讨论】:

  • 由于过于本地化而被关闭。但在我看来,这似乎是一个普遍存在的错误。这个解决方案很有趣也很有帮助。

标签: sql stored-procedures plsql oracle11g plsqldeveloper


【解决方案1】:

请尝试将输入变量名称 emp IN NUMBER 更改为 I_EMP IN NUMBER 或其他名称,因为表中有一个名为 emp 的列。

【讨论】:

  • 感谢您的回复,但我认为这不是问题。我也试过了。我已经根据我的更改方式编辑了程序。
  • 您的表是否有名为DIV_CODE 的列?如果是,那么请将变量名DIV_CODE重命名为I_DIV_CODE之类的。
  • 是的,它有一个名为 DIV_CODE 的列。我将参数名称更改为除法。它奏效了!非常感谢你的帮助!!! (Y) :D
猜你喜欢
  • 2018-10-25
  • 1970-01-01
  • 1970-01-01
  • 2019-02-08
  • 1970-01-01
  • 2017-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多