错误的数量或类型的参数错误oracle形式

时间:2019-04-22 12:29:04

标签: oracle plsql oracleforms oracle-fusion-middleware

我在Program Units Oracle Forms下创建了程序

代码:

PROCEDURE VALIDATION_TEST
    (p_mid we_group_hof_k.mstatusid%TYPE,  
     p_status we_group_hof_k.cardstatus%TYPE
                       ) is
begin
  insert into test
  select mstatusid, cardstatus
   from we_group_hof_k
   where p_mid = 1
   and p_status = 'A';
end;

此过程成功完成。我把这行放在按下按钮的触发器“测试”按钮上

VALIDATION_TEST;

当我尝试编译“测试”按钮时,出现以下错误:

wrong number or types of arguments in call to 'VALIDATION_TEST'

我正在使用Oracle表格11g。

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您已使用两个参数定义了过程。您对该过程的调用传递了参数。因此,您可以通过在调用过程时传递两个参数来解决此问题。

或者可以通过从过程签名中删除参数来实现。坦率地说,因为您的代码没有多大意义。 WHERE子句针对硬编码值测试参数。因此,如果您传递的参数是we_group_hof_k1,则选择'A'中的所有记录-否则不选择。

也许这就是您所需要的?

PROCEDURE VALIDATION_TEST
    (p_mid we_group_hof_k.mstatusid%TYPE,  
     p_status we_group_hof_k.cardstatus%TYPE
                       ) is
begin
  insert into test
  select mstatusid, cardstatus
   from we_group_hof_k
   where mstatusid = p_mid 
   and cardstatus = p_status;
end;

然后,您将这样调用程序:

VALIDATION_TEST(1, 'A');

但是,由于此过程是从Oracle Forms调用的,因此您可能需要传递Forms块中的项目。但是只有您确定知道这一点。

相关问题