PLS-00306 Erreur: comment trouver le mauvais argument?


11

PLS-00306: nombre ou types d'arguments incorrects dans l'appel à 'chaîne'

Cause: cette erreur se produit lorsque l'appel de sous-programme nommé ne peut être mis en correspondance avec aucune déclaration pour ce nom de sous-programme. Le nom du sous-programme peut être mal orthographié, un paramètre peut avoir le mauvais type de données, la déclaration peut être défectueuse ou la déclaration peut être placée incorrectement dans la structure du bloc. Par exemple, cette erreur se produit si la fonction de racine carrée intégrée SQRT est appelée avec un nom mal orthographié ou avec un paramètre du mauvais type de données.

Action: Vérifiez l'orthographe et la déclaration du nom du sous-programme. Vérifiez également que son appel est correct, ses paramètres sont du bon type de données et, s'il ne s'agit pas d'une fonction intégrée, que sa déclaration est correctement placée dans la structure du bloc.

Comment identifier rapidement le mauvais argument?

J'ai une procédure stockée avec des dizaines de paramètres. Existe-t-il un moyen simple de vérifier les différences entre la procédure utilisée et la procédure définie? Je ne veux pas le vérifier ligne par ligne ..

Réponses:


11

Non, il n'y a vraiment aucun raccourci ici. Examinez les choses dans l'ordre suivant:

  1. Vérifiez le nom de la procédure.
  2. Vérifiez le nombre de paramètres.
  3. Vérifiez les types de paramètres.
  4. Vérifiez les noms des paramètres.

4
Vérifiez également les noms des paramètres si vous les appelez par leur nom. Cela m'a juste surpris.
swref

vérifier le nom des paramètres est la clé pour moi, merci.
Arpit Aggarwal

Ce pourrait être le type d'objet
Arthur
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.