1

尝试在 Oracle 中执行包含两个输入参数的存储过程时出现以下错误:

ORA-06550:第 1 行,第 7 列: PLS-00306:调用 “P_GET_NEXT_AVAILABLE_RUN”
时参数的数量或类型错误 ORA-06550:第 1 行,第 7 列: PL/SQL:语句被忽略


两个输入参数都需要不为空的值。我无法单步执行代码,否则我将能够看到哪个值为空 - 所以 - 在 Oracle 中有没有一种方法可以让您看到存储过程生成的错误 - 所以我可以确定哪个参数正在获取空值?

4

2 回答 2

5

该错误与空值无关 - PLS 部分说明正在使用的是:

  • 提供错误数量的参数 - 小于或大于预期的数量
  • 提供的值的数据类型与参数不匹配

它可以是其中一个,也可以是两者的组合。

你不能DBMS_OUTPUT用来打印正在尝试的查询和参数,以便与被调用的存储过程的参数进行比较吗?

于 2010-01-21T20:14:24.947 回答
0

可以修改程序吗?您可以允许空值并以编程方式拒绝它们。

或者你可以用另一个检查参数然后调用有问题的过程来包装你的过程。

于 2010-01-21T19:29:10.670 回答