Wrong number or types of arguments error oracle 表单

Wrong number or types of arguments error oracle forms

我在 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;

此程序成功遵守。我把这一行放在 When-Button-Pressed Trigger "TEST" Button

VALIDATION_TEST;

当我尝试编译 "TEST" 按钮时出现以下错误:

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

我正在使用 oracle forms 11g。

如何解决这个问题?

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

或者从过程的签名中删除参数。因为坦率地说,您的代码没有多大意义。 WHERE 子句根据硬编码值测试参数。因此,要么 select we_group_hof_k 中的所有记录 - 如果传递的参数是 1'A' - 否则 none.

也许这就是您需要的?

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 块中传入项目。但只有你自己清楚。