【问题标题】:oracle stored procedure generates an compliation errororacle存储过程产生编译错误
【发布时间】:2013-11-19 01:51:46
【问题描述】:

这是一个简单的过程,它产生了 ORA -24344 编译错误和 PLS - 00103。请帮助清除它们

create or replace PROCEDURE test (v_price in number)
IS
BEGIN 
    if ROWNUM = 0
        insert into admin (price) values (v_price);
    else 
        update admin set price = v_price; 
    end if;
END;

【问题讨论】:

  • 请格式化您的代码。您缺少 THEN 关键字。去阅读 PL/SQL 文档。
  • if rownum = 0 不起作用。你想用它来完成什么?
  • 我的功能是在价格列中插入一个新价格,如果其中有零行。如果有一行或多行,那么它应该执行更新操作。我清楚吗?
  • @Krish - 所以你的 admin 表只能有 0 或 1 行?这似乎是一个不太可能的数据模型。
  • @JustinCave..是的,这就是我需要的。为什么不太可能,请您详细说明一下?

标签: oracle stored-procedures oracle10g


【解决方案1】:

条件后你忘记了then

create or replace PROCEDURE test (v_price in number) IS
rn number;
BEGIN
  select count(*) into rn from admin;
  if rn = 0 THEN
    insert into admin (price) values (v_price);
  else
    update admin set price = v_price;
  end if;
END;

【讨论】:

  • 感谢指正。它仍然显示 ORA 24344 错误成功和编译错误和 PLS-00204:函数或伪列 'ROWNUM' 只能在 SQL 语句中使用。请帮我纠正这个问题。
  • 抱歉,错过了。这是固定的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多