Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 07/02/2019 15:47:20
- hqfont
- Membre
Passage en paramètres d'un type ARRAY.
Bonjour,
Le passage d'un paramètre de type ARRAY dans une fonction ne semble pas possible.
Quelle serait la bonne méthode à utiliser pour arriver à ce résultat ?
Ci-dessous, le modèle de fonction que je voudrai implémenter :
CREATE OR REPLACE FUNCTION Ma_Fonction (P_REC MATABLE%ROWTYPE)
RETURNS INTEGER
AS $$
DECLARE
-- Declarations
C_Ret INTEGER;
BEGIN
C_Ret := 0;
-- Le code
-- ....
RETURN C_Ret;
END;
$$ LANGUAGE plpgsql;
J'obtiens une erreur de ce type :
erreur de syntaxe sur ou près de « % »
J'ai également essayé d'associer le type RECORD au paramètre, mais ce type ne semble pas autorisé pour un paramètre de fonction.
Quelle serait la meilleure façon de procéder pour traiter cette problématique ?
D'avance merci de votre retour.
Cordialement.
Hors ligne
#2 07/02/2019 17:52:26
- gleu
- Administrateur
Re : Passage en paramètres d'un type ARRAY.
Le passage d'un paramètre de type ARRAY est tout à fait possible. Par contre, vous ne pouvez pas faire un %ROWTYPE pour un type d'un argument d'une fonction. Ça ne fait pas partie du langage SQL. C'est du PL/pgsql.
Guillaume.
Hors ligne
#3 07/02/2019 17:58:05
- hqfont
- Membre
Re : Passage en paramètres d'un type ARRAY.
Merci du retour.
Je suis parti sur l'idée de créer un type de donnée (par la fonction CREATE TYPE).
Je cherche une façon de créer un type de donnée correspondant à la description de ma table.
Quelle serait la meilleure façon ?
Hors ligne
#4 07/02/2019 18:26:38
- gleu
- Administrateur
Re : Passage en paramètres d'un type ARRAY.
La meilleure façon serait certainement de ne pas le créer, vu qu'il existe déjà
Guillaume.
Hors ligne
Pages : 1