Dieser Fehler hat nichts mit einem Problem in der ausgeführten Prozedur zu tun. Dieser Fehler hat damit zu tun, wie Sie ihn in einer Datenbank gegenüber einer anderen aufrufen. Es ist der Aufrufer in DEV, der die richtige Kombination von Parametern und Parametertypen sendet. Die Logik, die letztlich die Prozedur in PROD aufruft, sendet eine andere Kombination von Parametern.
Überprüfen Sie zunächst die Prozedurspezifikation in beiden Datenbanken, um sicherzustellen, dass sie WIRKLICH identisch ist. Suchen Sie nach Unterschieden in den Parametern, den Datentypen oder einem Unterschied in DEFAULT NULL oder ähnlichem.
Überprüfen Sie als nächstes die Logik, die die eigentliche Prozedur zwischen Datenbanken aufruft. In der Regel fehlt einer der Parameter oder der Datentyp ist falsch. Die Reihenfolge der Parameter ist auch wichtig, wenn Sie keine benannte Notation verwenden.
Wenn Sie schließlich sicher sind, dass alles gleich ist, dann ist es möglich, dass es Daten betrifft, die einen der Parameter haben, der fehlt, und Ihre C++ Treiber rufen nicht in das Verfahren gleich an.
Dies ist ein solider und klarer Fehler und es sagt Ihnen, dass es letztendlich einen Unterschied gibt, wie es aufgerufen wird. Viel Glück.
Es wäre hilfreich, die Signatur der Prozedur zu haben, die ein Problem hat, zusammen mit dem Code, den Sie verwenden, um diese Prozedur aufzurufen. Ein kleines, einfaches Beispiel sollte ausreichen, um das Problem zu klären, ohne etwas Privates zu enthüllen. –