Oracle 无法在其他数据库中执行存储过程?

Oracle 无法在其他数据库中执行存储过程?,oracle,visual-c++,stored-procedures,Oracle,Visual C++,Stored Procedures,在开发数据库中执行良好但在生产数据库中执行失败的存储过程? 返回的错误是:“PLS-00306:调用时参数的数量或类型错误” VC++数据库oracle 关闭:由于同义词错误而发生错误。此错误与正在执行的过程中的问题无关。此错误与您在一个数据库中调用它的方式有关。正是DEV中的调用者发送参数和参数类型的正确组合。最终在PROD中调用过程的逻辑是发送不同的参数组合 首先检查两个数据库中的过程规范,以确保它实际上是相同的。查找参数、数据类型的差异或默认值NULL等的任何差异 接下来检查在数据库之间调

在开发数据库中执行良好但在生产数据库中执行失败的存储过程? 返回的错误是:“PLS-00306:调用
时参数的数量或类型错误”

VC++数据库oracle


关闭:由于同义词错误而发生错误。

此错误与正在执行的过程中的问题无关。此错误与您在一个数据库中调用它的方式有关。正是DEV中的调用者发送参数和参数类型的正确组合。最终在PROD中调用过程的逻辑是发送不同的参数组合

首先检查两个数据库中的过程规范,以确保它实际上是相同的。查找参数、数据类型的差异或默认值NULL等的任何差异

接下来检查在数据库之间调用实际过程的逻辑。通常它会缺少一个参数或数据类型不正确。如果不使用命名符号,参数的顺序也很重要

<>如果最终确定所有的都是相同的,那么它可能是与数据相关的,其中一个参数缺少值,而C++驱动程序不调用该过程。p>
这是一个明确的错误,它告诉你,它的调用方式最终会有所不同。祝你好运。

你应该提供更多信息。 至少,这些是“基本”数据类型(NUMBER、DATE、VARCHAR2等)还是有外来数据类型(XMLTYPE、geo、用户定义的类型?) 使用SQL*Plus,连接到两个数据库中的模式并进行描述
发布结果,以便我们可以看到它们。

调用代码和被调用sp在两个数据库中保持不变。如果有问题的过程的签名,以及用于调用此过程的代码,这将很有帮助。一个小而简单的例子应该足以澄清这个问题,而不会透露任何隐私。