1
我想写一个“通用”函数,将返回任何枚举(在任何架构)的标签...但我没有太多的运气,因为我不知道又该参数类型是...PostgreSQL - 函数,返回任何ENUM的标签
这样做的目的是能够调用函数这样
SELECT common.get_enum_labels('public.rainbow_colors');
SELECT common.get_enum_labels('audit.user_actions');
这是我有这么
CREATE OR REPLACE FUNCTION common.get_enum_labels(enum_name regtype)
RETURNS SETOF text AS
$$
BEGIN
EXECUTE format('SELECT unnest(enum_range(NULL::%s))::text AS enum_labels ORDER BY 1', enum_name);
END;
$$
LANGUAGE plpgsql
STABLE
PARALLEL SAFE
;
任何提示WOU LD理解
威尔文字易于受到SQL注入返回的东西?有没有我应该使用的适当的对象标识符类型?我正在问,因为[这个答案](https://stackoverflow.com/a/10711349/481904) – zam6ak
是的,你说得对。 'regtype'更安全。 – klin