错误数量或类型的参数错误 oracle 表单
Posted
技术标签:
【中文标题】错误数量或类型的参数错误 oracle 表单【英文标题】:Wrong number or types of arguments error oracle forms 【发布时间】: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。
如何解决这个问题?
【问题讨论】:
【参考方案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以上是关于错误数量或类型的参数错误 oracle 表单的主要内容,如果未能解决你的问题,请参考以下文章
从 C# 执行 Oracle 存储过程 - 调用中的参数数量或类型错误
使用 Spring Data Jpa 在 Oracle 中调用存储过程时参数的数量或类型错误
PLS-00306:调用“ADD_MONTHS”时参数的数量或类型错误