J'ai une procédure stockée qui rend les jointures très complexes et renvoie 1 ligne de données (LIMIT 1 est utilisé). Dans ma demande, j'utilise ensuite ces données pour faire des calculs. De cette façon, j'essaie de garder la logique métier hors des procédures stockées. Mais maintenant j'ai besoin d'obtenir ces données dans une autre fonction stockée pour faire aussi quelques calculs. La raison pour laquelle je veux créer la fonction stockée est qu'elle sera appelée dans une autre requête qui contient des milliers de lignes.MySQL: Comment obtenir les résultats d'une procédure stockée dans une fonction stockée?
Est-ce possible? Je ne veux pas dupliquer la logique de jointure complexe dans la fonction stockée ... La seule solution que je vois est d'utiliser les paramètres de sortie.
-----------------------------------
PS. J'ai décidé de vous expliquer ma situation, peut-être que vous me proposerez une autre décision.
Je dois calculer le prix du droit de livraison payé (c'est le prix final, y compris l'emballage, la livraison et le dédouanement) des marchandises. Le calcul de ce prix de livraison payé est un peu complexe, et je ne veux pas garder une logique complexe dans mes procédures et fonctions stockées. J'ai donc créé une procédure stockée qui sélectionne toutes les données nécessaires pour faire le calcul du prix et j'utilise ces données dans mon application pour calculer le prix. Pour l'instant tout fonctionne bien.
Mais maintenant, je dois créer une liste de prix avec les frais de livraison payés et nous avons des milliers de biens. Donc, si j'appelle ma procédure stockée pour chaque transaction, il faudra des milliers d'allers-retours au serveur. C'est pourquoi je veux créer une fonction qui appellera la procédure stockée et calculera le prix basé sur les données retournées. Et puis je veux l'utiliser comme ceci:
SELECT Description, blablabla, Weight, ..., GetDeliveryDutyPaidPrice (...) FROM pricelist;
Des idées?
J'ai des paramètres d'entrée pour cette procédure stockée. Comment une vue peut-elle aider? Pouvez-vous s'il vous plaît expliquer plus en détail? – nightcoder
Quels sont les paramètres d'entrée pour cette procédure stockée? Si vous avez besoin des paramètres d'entrée pour générer la ligne de sortie, avez-vous vraiment réussi à garder la logique métier hors de vos procédures stockées? –
Eh bien, les paramètres d'entrée sont nécessaires uniquement pour les jointures et où la clause – nightcoder