PLS-00306 Błąd: Jak znaleźć zły argument?

11

PLS-00306: niepoprawna liczba lub typy argumentów w wywołaniu „łańcucha”

Przyczyna: Ten błąd występuje, gdy nazwanego wywołania podprogramu nie można dopasować do żadnej deklaracji dla tej nazwy podprogramu. Nazwa podprogramu może być błędnie napisana, parametr może mieć niewłaściwy typ danych, deklaracja może być wadliwa lub deklaracja może zostać niepoprawnie umieszczona w strukturze bloku. Na przykład ten błąd występuje, jeśli wbudowana funkcja pierwiastka kwadratowego SQRT jest wywoływana z niepoprawną nazwą lub z parametrem niewłaściwego typu danych.

Działanie: Sprawdź pisownię i deklarację nazwy podprogramu. Potwierdź również, że jego wywołanie jest poprawne, jego parametry mają odpowiedni typ danych, a jeśli nie jest to funkcja wbudowana, jego deklaracja jest poprawnie umieszczona w strukturze bloku.

Jak szybko zidentyfikować niewłaściwy argument?

Mam procedurę składowaną z dziesiątkami parametrów. Czy istnieje prosty sposób sprawdzenia różnic między zastosowaną a zdefiniowaną procedurą? Nie chcę tego sprawdzać linia po linii ...

Stephan Schielke
źródło

Odpowiedzi:

11

Nie, naprawdę nie ma tutaj skrótów. Zbadaj rzeczy w następującej kolejności:

  1. Sprawdź nazwę procedury.
  2. Sprawdź liczbę parametrów.
  3. Sprawdź typy parametrów.
  4. Sprawdź nazwy parametrów.
Leigh Riffel
źródło
4
Sprawdź także nazwy parametrów, jeśli wywołujesz je według nazwy. To mnie złapało.
swref 30.01.17
sprawdzanie nazw parametrów jest dla mnie kluczem, dzięki.
Arpit Aggarwal
Może to być typ obiektu
Arthur