首页 > 解决方案 > 存储过程在 Crystal Reports 中有效,但在 SQL Developer 中无效

问题描述

我有一个报表可以在 Crystal Reports 中使用这个存储过程正常工作:

BEGIN "CMS"."CMS_RP_MERCHANDISE"."SP_M4_OH_ITEMS"(:MCUR, 1, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', NULL); END ;

当我尝试在 Oracle SQL Developer 中使用相同的存储过程时,我收到以下消息:

从行开始的错误:命令中的 2 -
错误报告 -
ORA-06550:第 1 行 Ô col 2543:
PLS-00306:调用“SP_M4_OH_ITEMS”时参数的数量或类型错误
ORA-06550:第 1 行Ô col 2543:
PL/ SQL:语句忽略
06550。00000 - “行 %s,列 %s:\n%s”
*原因:通常是 PL/SQL 编译错误。
*行动:

这是存储过程声明

图片来自 sql dev

标签: oracleplsqloracle-sqldeveloper

解决方案


调用“SP_M4_OH_ITEMS”时参数的数量或类型错误

我想你做错了什么。该过程有无数个参数,而且您似乎错过了一些(即您的参数太少或太多),或者您错过了它们的数据类型(例如,应该是NUMBER但您提供了一个字符串)。

这样的程序很难调试;错误在第 1 行第 2543 列(2543?!);您不能以某种方式对其进行格式化并使其更易于阅读和维护吗?谁会向右滚动这么远?

此外,您没有发布CREATE PROCEDURE代码;我们看到您声明了许多变量,并将它们传递给程序,但是 - 没有看到它,很难说更多。我希望你能在阅读我写的内容后设法修复它。祝你好运!


推荐阅读