Dans le code fourni, une tentative est effectuée pour appeler la fonction FnUpdateSalegtab09. Cependant, une erreur est rencontrée, indiquant que la fonction n'existe pas ou que ses types d'arguments ne correspondent pas à ceux attendus.
Le message d'erreur suggère que le nom de la fonction ou les types d'arguments peuvent être incorrects. Examinons les causes possibles.
La signature de fonction pour FnUpdateSalegtab09 spécifie que plusieurs de ses paramètres sont de type smallint. Cependant, dans l'appel de fonction, ces paramètres sont transmis sous forme de littéraux numériques, qui sont initialement présumés être de type entier.
Cette inadéquation entre les types attendus et réels des arguments peut entraîner l'erreur.
Pour résoudre ce problème, vous devez explicitement convertir les littéraux numériques en type correct, smallint, avant de les transmettre à la fonction. Vous pouvez y parvenir en ajoutant un opérateur de transtypage de type (::) à chaque littéral, comme indiqué ci-dessous :
select FnUpdateSalegtab09( 4, 1, 0, 12, 1, '9'::varchar, '2014-07-15'::timestamp, 4048, '9'::varchar, 4048, 'MYCUSTOMER'::varchar, 12::money, 0, 0::money, 0.32, 185, 0, '2014-07-15 11:24:12 AM'::timestamp, 0, 0::money, 0, 0::money, 0::money, 0, 0::money, 0, 0::money, 0, 0::money, ''::varchar, 0::money, False, ''::varchar, '2014-07-15'::timestamp, ''::varchar, ''::varchar, False, ''::varchar, ''::varchar, 1, ''::varchar, 1, 0, 1, 0, 42 );
En ajoutant les transtypages de type explicites, vous vous assurez que les types d'arguments correspondent aux attentes de la fonction. définition, et l'appel de fonction devrait maintenant s'exécuter sans l'erreur "la fonction ... n'existe pas".
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!