J'ai une procédure de magasin Oracle qui prend 2 chaînes et une date dans le paramètre d'entrée et qui donnent un curseur REF sous forme de sortie:
ORA-06550: Ligne 1, colonne 8 : PLS-00306: wrong number or types of arguments in call to 'MYPROSTO' ORA-06550: Ligne 1, colonne 8 : PL/SQL: Statement ignored
4 Réponses :
Il semble y avoir plusieurs problèmes: P>
C'était une erreur dans mon processus d'annonimisation, voir mon édition
Fixé pour la dernière faute de frappe. Cependant, où voyez-vous un Varchar2 dans une date?
Qu'en est-il du paramètre de retour. C'est "mappé" d'accord? DoubleCheck p>
La réponse est sûrement claire dans le message d'erreur: p>
"Numéro incorrect ou types d'arguments en appel à" myprosto "" p> blockQuote>
Votre procédure attend 4 paramètres mais vous ne passez que 3. Vous avez besoin d'une variable de sortie pour le Refcursor. P>
J'avais la même chose qui m'arrive et j'ai finalement résolu. J'utilisais l'oracle.ManagedDataaccess.Client, comme vous, et si vous avez eu une solution .NET divisé en projet de présentation, du projet WebAPI et du projet d'accès aux données. Mon app.config dans le projet d'accès aux données a eu la section correcte impliciclefcursor avec la définition du curseur et les métadonnées comme vous l'avez, mais j'ai oublié de la copier également dans mon projet Web.config de mon projet WebAPI. Une fois que j'ai fait cela, mon "mauvais nombre ou type d'arguments" est parti. J'espère que cela pourra aider. (Je viens de copier l'ensemble de l'oracle.Managedataaccess.Client Section.) P>
En outre, si vous avez généré la section implicittrefcursor à la main, j'ai découvert un moyen beaucoup plus facile et fiable de le faire. Depuis l'explorateur de serveur .NET, connectez-vous à votre base de données, recherchez votre procédure stockée, cliquez dessus avec le bouton droit de la souris et exécutez. Alors ok. Il fera apparaître une liste des paramètres d'entrée et de sortie, y compris le curseur. Si vous cliquez sur le bouton Afficher configuration, il vous montrera ce qui doit être dans votre EF App.Config. Et le bouton AddConfig vous l'ajoutera pour vous. Cela aide à éviter les erreurs. P>
Merci mon pote! Vous avez sauvé ma vie, c'est la dernière pièce que je recherche.
Si heureux que cela ait aidé. Procédures stockées Oracle ne sont définitivement pas conviviales avec cadre d'entité.
Est ok que pdate est mappé à un Varchar2?
Qu'est-ce que tu veux dire? Suggérez-vous que j'essaie de passer un varchar au lieu d'une date dans ma procédure stockée?
Avez-vous essayé de regarder docs.oracle.com /cd/e51173_01/win.122/e17732/... ? Essayez également de changer
varchar2 code> à
varchar2 code> dans le type de données native (juste après le manuel ici, c'est Oracle, vous ne savez jamais).