PLS-00306 Error: ¿Cómo encontrar el argumento incorrecto?

11

PLS-00306: número incorrecto o tipos de argumentos en la llamada a 'cadena'

Causa: este error se produce cuando la llamada del subprograma con nombre no puede coincidir con ninguna declaración para ese nombre de subprograma. El nombre del subprograma puede estar mal escrito, un parámetro puede tener el tipo de datos incorrecto, la declaración puede estar defectuosa o la declaración puede estar colocada incorrectamente en la estructura de bloques. Por ejemplo, este error ocurre si la función de raíz cuadrada incorporada SQRT se llama con un nombre mal escrito o con un parámetro del tipo de datos incorrecto.

Acción: Revise la ortografía y la declaración del nombre del subprograma. Confirme también que su llamada es correcta, sus parámetros son del tipo de datos correcto y, si no es una función incorporada, que su declaración se coloca correctamente en la estructura de bloques.

¿Cómo identifico rápidamente el argumento equivocado?

Tengo un procedimiento almacenado con docenas de parámetros. ¿Hay una manera fácil de verificar las diferencias entre el procedimiento utilizado y el definido? No quiero comprobarlo línea por línea.

Stephan Schielke
fuente

Respuestas:

11

No, realmente no hay atajos aquí. Examine las cosas en el siguiente orden:

  1. Verifique el nombre del procedimiento.
  2. Verifique el número de parámetros.
  3. Verifique los tipos de los parámetros.
  4. Verifique los nombres de los parámetros.
Leigh Riffel
fuente
44
Compruebe también los nombres de los parámetros si los llama por su nombre. Eso me sorprendió.
swref
comprobar el nombre de los parámetros es la clave para mí, gracias.
Arpit Aggarwal
Podría ser el tipo de objeto
Arthur