0
votes

Renvoie une table à l'aide de la procédure SQL?

J'ai un problème avec la table de retour à l'aide de la procédure SQL.

Mon code: P>

CREATE PROCEDURE return_data(surname character varying)
LANGUAGE SQL
AS $$
SELECT * FROM peopple WHERE surname=surname

$$;

CALL return_data('Jobs');


0 commentaires

3 Réponses :


2
votes

Les procédures ne sont pas destinées à renvoyer quoi que ce soit. Utilisez une fonction de retournement définie

select *
from return_data('Jobs');


0 commentaires

-2
votes

Une fonction peut revenir mais une procédure ne peut pas. C'est vrai, je veux ajouter à cela que nous utilisons généralement une fonction pour renvoyer des valeurs d'un type (en général une valeur) Tandis que, Procédure ne revient jamais mais peut se comporter comme une fonction sans déclaration de retour à l'aide des paramètres. Pour ajouter à cela, nous utilisons la procédure lorsque nous ne voulons pas revenir dans des déclarations de SQL réelles, mais si nous avons besoin d'une procédure pour donner de multiples valeurs, nous pouvons effectuer une procédure comme une fonction pour les valeurs multiples VJA.

Comme une table est accessible par type d'enregistrement ou de tableau en fonction de l'homogénéité. Par conséquent, utilisez la fonction avec le type de retour comme enregistrement / tableau.

Par conséquent, comme fonction est uniquement utilisée pour renvoyer une sortie unique, nous devons spécifier via le retour.


1 commentaires

Je ne suis pas sûr de comprendre cette réponse. Les fonctions peuvent renvoyer une ou plusieurs colonnes et une ou plusieurs lignes. Les procédures ne sont pas vraiment destinées à renvoyer quoi que ce soit, mais vous pouvez les forcer à utiliser des paramètres inout.



0
votes

Vous pouvez ajouter une ou plusieurs lignes sur le jeu de résultats:

SELECT * FROM return_data("a surname");


0 commentaires