Vous n'êtes pas identifié(e).
Pages : 1
merci beaucoup pour ton aide
ca va beaucoup m'aider pour mon avancement dans mon projet
désole pour te deranger mais c'est juste que je suis nouveau dans postgres c'est pour ca que j'ai pas beaucoup de connaissance sur lui
donc est ce que vous pouvez m'expliquer comment affecter les resultats de ma fonction dans mes variable apres ca
et c'est avec se record que je peut les avoir c'est ca
merci beaucoup pour ton aide
alors voila la fonction que j'ai creer
CREATE OR REPLACE FUNCTION get_min_matrice (IN matrice double precision[], OUT min double precision, OUT i_min INTEGER,OUT j_min INTEGER) AS $$
DECLARE
BEGIN
min := 100000;
i_min := 0;
j_min := 0;
for i IN 1..array_length(matrice, 1) LOOP
for j IN 1..array_length(matrice, 2) LOOP
if min > matrice[i][j] then
min = matrice[i][j];
i_min := i;
j_min := j;
end if;
end loop;
end loop;
END;
$$ LANGUAGE plpgsql;
et apres dans ma fonction principale je fais appelle a cette fonction pour avoir les valeur du minimum et ses coordonne dans la matrice apres l'avoir initialiser
select get_min_matrice(matrice, min, i_min, j_min);
et je veux que mes parametre min, i_min et j_min soit affecter par les valeurs qui seront les resultat de ma fonction
mais il me donne cette erreur
ERREUR: la fonction get_min_matrice(double precision[], double precision, integer, integer) n'existe pas
État SQL :42883
avec plaisir
dans le passage de mon parametre je veux passer une matrice et avoir comme resultat de sorti le minumim de la matrice et les coordonnees de se min dans la matrice
alors j'ai fais l declaration suivante
CREATE OR REPLACE FUNCTION get_min_matrice (IN matrice double precision[][], OUT min double precision, OUT i_min INTEGER,OUT j_min INTEGER) AS $$
apres de realise mon traitement
mais quand j'applle la fonction par
select get_min_matrice(matrice, min, i_min, j_min);
il me dit
HINT: Aucune fonction ne correspond au nom donné et aux types d'arguments.
et aussi quand je voie ma fonction dans l'outils d'administration je voie que le double precision [][] devient double precision []
bonjour,
je suis entrain de travailler sur un projet ou j'utilise les tableau a deux dimension
mais le probleme c'est que je ne peut pas le passer en paramétre
si quelqu'un a une idée la dessus je serai bien ravi qu'il me donne sont aide
et merci d'avance
merci bouceaup pour ton aide
salut,
mon problème c'est que j'ai une fonction que je lui passe deux tableau comme paramètre, et avec c'est deux tableau je doit créer une matrice. Mais le problème c'est que je ne sais pas comment donner a ma matrice les dimension nécessaire pour que je puisse l'utiliser.
Il me donne a chaque fois une erreur d'indice en dehors de l'échelle.
voila le code qui me donne le probleme
--vec1 et vec2 sont deux tableau que je passe en parametre de la fonction
FOR i IN REVERSE array_length(vec1, 1)..1 LOOP
RAISE NOTICE 'i is %', i;
FOR j IN REVERSE array_length(vec2, 1)..1 LOOP
RAISE NOTICE 'j is %', j;
matrice[i][j] := abs(vec1[i] - vec2[j]);
end loop;
end loop;
et voila ma requête
SELECT ma_fonction(
array[1.0, 0.23, 0.7, 0.87],
array[1.0, 0.23, 0.7]
);
et voila le resultat
NOTICE: i IS 3
NOTICE: j IS 4
NOTICE: j IS 3
ERREUR: indice du tableau en dehors de l'échelle
État SQL :2202E
Pages : 1