PLS-00306 Fehler: Wie finde ich das falsche Argument?


11

PLS-00306: Falsche Anzahl oder Arten von Argumenten beim Aufruf von 'string'

Ursache: Dieser Fehler tritt auf, wenn der Aufruf des benannten Unterprogramms keiner Deklaration für diesen Unterprogrammnamen zugeordnet werden kann. Der Name des Unterprogramms ist möglicherweise falsch geschrieben, ein Parameter hat möglicherweise den falschen Datentyp, die Deklaration ist möglicherweise fehlerhaft oder die Deklaration ist möglicherweise falsch in der Blockstruktur platziert. Dieser Fehler tritt beispielsweise auf, wenn die integrierte Quadratwurzelfunktion SQRT mit einem falsch geschriebenen Namen oder mit einem Parameter des falschen Datentyps aufgerufen wird.

Aktion: Überprüfen Sie die Schreibweise und Deklaration des Unterprogrammnamens. Stellen Sie außerdem sicher, dass der Aufruf korrekt ist, die Parameter vom richtigen Datentyp sind und dass die Deklaration korrekt in der Blockstruktur platziert ist, wenn es sich nicht um eine integrierte Funktion handelt.

Wie identifiziere ich schnell das falsche Argument?

Ich habe eine gespeicherte Prozedur mit Dutzenden von Parametern. Gibt es eine einfache Möglichkeit, die Unterschiede zwischen dem verwendeten und dem definierten Verfahren zu überprüfen? Ich möchte es nicht Zeile für Zeile überprüfen.

Antworten:


11

Nein, hier gibt es wirklich keine Abkürzungen. Untersuchen Sie die Dinge in der folgenden Reihenfolge:

  1. Überprüfen Sie den Prozedurnamen.
  2. Überprüfen Sie die Anzahl der Parameter.
  3. Überprüfen Sie die Arten der Parameter.
  4. Überprüfen Sie die Parameternamen.

4
Überprüfen Sie auch die Parameternamen, wenn Sie sie beim Namen aufrufen. Das hat mich nur erwischt.
swref

Das Überprüfen des Namens von Parametern ist der Schlüssel für mich, danke.
Arpit Aggarwal

Es könnte der Objekttyp sein
Arthur
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.