【问题标题】:Wrong number or types of arguments error oracle forms错误数量或类型的参数错误 oracle 表单
【发布时间】:2019-04-22 12:29:03
【问题描述】:

我在 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 表单 11g。

如何解决这个问题?

【问题讨论】:

    标签: oracle plsql oracleforms oracle-fusion-middleware


    【解决方案1】:

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

    或者也许通过从过程的签名中删除参数。因为坦率地说,您的代码没有多大意义。 WHERE 子句根据硬编码值测试参数。因此,要么选择 we_group_hof_k 中的所有记录 - 如果传递的参数是 1'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 块中传入项目。但只有你自己知道。

    【讨论】:

    • 我的列具有条件,其中列不为空。如何添加VALIDATION_TEST参数
    • 抱歉,我不确定您的意思。这与your other question 有关吗?但是,如果您的意思是要在 WHERE 子句中添加一个额外的 AND whatever IS NULL 标准,那就去做吧。您无需更改过程的签名即可。
    • 如果我添加新参数第 3 列然后在选择命令中如何写“AND column IS NOT NULL with 3rd parameter
    猜你喜欢
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    相关资源
    最近更新 更多