我可以在选择后执行程序吗?

时间:2014-07-31 17:11:39

标签: oracle oracle-sqldeveloper

我正在尝试创建一个脚本,它将验证我的存储过程的功能。但是,一旦我将执行存储过程放在那里,我就会遇到这种错误:PLS-00103:遇到符号" NEW_PRODUCT"当期待以下之一时:    :=。 (@%;立即 符号":="取代了" NEW_PRODUCT"继续。

我的脚本如下所示:

DECLARE
  id_unit number;
  id_unit_old number;
  var_materialid number;
  var_processid number;
  serial_no varchar(30);
  product_name_new varchar(30);
BEGIN
  SELECT max(id) INTO id_unit_old
  FROM Unit;

  execute new_product('NTB', 'Diablo', 'CPU-I7', 'GPU-M800', 'RAM-K2');

  SELECT max(id) INTO id_unit
  FROM Unit;

  IF id_unit > id_unit_old THEN BEGIN 
    SELECT id_material, id_process, serial_number INTO var_materialid, var_processid, serial_no
    FROM Unit
    WHERE id = id_unit;

    SELECT name INTO product_name_new
    FROM Material
    WHERE id = var_materialid;
  ELSE
    RAISE_APPLICATION_ERROR(-20002, 'Insert to table Unit has failed!');
  END IF;
END;

有什么建议是什么问题,我该如何解决?感谢

1 个答案:

答案 0 :(得分:2)

execute字之前删除new_product字,当您从另一个过程或PL / SQL匿名块调用PL / SQL过程时,必须按名称调用它。 / p>