Je ne sais pas si ça peut être utile à d'autres personnes mais pour traduire certains champs pour les vues à vocation "qgis" et l'import de données, j'ai ajouté les fonctions suivantes :
CREATE OR REPLACE FUNCTION utilisateurs.get_name_by_id_role(
roleid integer)
RETURNS character varying
LANGUAGE 'plpgsql'
COST 100
IMMUTABLE PARALLEL UNSAFE
AS $BODY$
BEGIN
RETURN (
SELECT nom_role || ' ' || prenom_role
FROM utilisateurs.t_roles
WHERE id_role = roleid -- nom_role = roleName
);
END;
$BODY$;
CREATE OR REPLACE FUNCTION ref_nomenclatures.get_id_nomenclature_by_mnemonique(
mytype character varying,
mymnemonique character varying)
RETURNS integer
LANGUAGE 'plpgsql'
COST 100
IMMUTABLE PARALLEL UNSAFE
AS $BODY$
DECLARE theidnomenclature integer;
BEGIN
SELECT INTO theidnomenclature id_nomenclature
FROM ref_nomenclatures.t_nomenclatures n
WHERE n.id_type = ref_nomenclatures.get_id_nomenclature_type(mytype) AND mymnemonique = n.mnemonique;
return theidnomenclature;
END;
$BODY$;
En passant, je ne sais pas quel processus utilise la fonction utilisateurs.get_id_role_by_name mais celle-ci peut présenter des erreurs en cas d'homonymie puisqu'elle ne se base que sur le nom et pas sur le prénom.
CREATE OR REPLACE FUNCTION utilisateurs.get_id_role_by_name(
rolename character varying)
RETURNS integer
LANGUAGE 'plpgsql'
COST 100
IMMUTABLE PARALLEL UNSAFE
AS $BODY$
BEGIN
RETURN (
SELECT id_role
FROM utilisateurs.t_roles
WHERE nom_role = roleName
);
END;
$BODY$;
=>
CREATE OR REPLACE FUNCTION utilisateurs.get_id_role_by_name(
roleName character varying,
roleFirstName character varying
)
RETURNS integer
LANGUAGE 'plpgsql'
COST 100
IMMUTABLE PARALLEL UNSAFE
AS $BODY$
BEGIN
RETURN (
SELECT id_role
FROM utilisateurs.t_roles
WHERE nom_role || prenom_role = roleName || roleFirstName
);
END;
$BODY$;
Je ne sais pas si ça peut être utile à d'autres personnes mais pour traduire certains champs pour les vues à vocation "qgis" et l'import de données, j'ai ajouté les fonctions suivantes :
En passant, je ne sais pas quel processus utilise la fonction
utilisateurs.get_id_role_by_name
mais celle-ci peut présenter des erreurs en cas d'homonymie puisqu'elle ne se base que sur le nom et pas sur le prénom.=>
?