return: text lang: plpgsql parameters: p0: type: integer name: i_rapport_id strict: STRICT src: | DECLARE rapport_columns TEXT; rapports_cursor refcursor; numero_rubrique INTEGER; column_name TEXT; table_name TEXT; total_function TEXT; liste_code_start integer; to_column_name TEXT; champ_calcule TEXT; i int2; ch TEXT; last_rubrique INTEGER; BEGIN rapport_columns = ''; last_rubrique = 0; OPEN rapports_cursor FOR SELECT t_rapports_rubriques.numero_rubrique, compta.get_formule_indicateur(t_indicateurs.oid, 1) FROM compta.t_rapports_rubriques, compta.t_indicateurs WHERE rapport_id = i_rapport_id AND indicateur_id = t_indicateurs.oid ORDER BY t_rapports_rubriques.numero_rubrique; FETCH rapports_cursor INTO numero_rubrique, column_name ; WHILE FOUND LOOP last_rubrique = last_rubrique + 1; FOR i IN last_rubrique..numero_rubrique - 1 LOOP rapport_columns = rapport_columns || ', 0 ' ; last_rubrique = last_rubrique + 1; END LOOP; IF (rapport_columns != '') THEN rapport_columns = rapport_columns || ', '; END IF; rapport_columns = rapport_columns || column_name; FETCH rapports_cursor INTO numero_rubrique, column_name ; END LOOP; CLOSE rapports_cursor; rapport_columns = 'ARRAY[' || rapport_columns || ']::text[] as indicateurs ' ; RETURN rapport_columns ; END;